Underscore - Map Collection to Memo (using _.reduce)

by johnpapa

HTML

<script src="http://underscorejs.org/underscore-min.js"></script>

JavaScript

var sessions = [{
    id: 100,
    title: 'knockout'},
{
    id: 101,
    title: 'jquery'},
{
    id: 102,
    title: 'jsrender'}
                           ];

var newsessions = _.reduce(sessions, function(memo, session) {
    memo[session.id] = session;
    return memo;
}, {});

console.log(newsessions);
console.log('1st item: ' + newsessions[100].id + ' - ' + newsessions[100].title);
console.log('2nd item: ' + newsessions[101].id + ' - ' + newsessions[101].title);
console.log('3rd item: ' + newsessions[102].id + ' - ' + newsessions[102].title);

// now test it
var x = newsessions[112312];
console.log(x);
if ( !! x) {
    alert('it exists')
} else {
    alert('doesnt exist')
}


// now test it
x = newsessions[101];
console.log(x);
if (!!x) {
    alert('it exists')
} else {
    alert('doesnt exist')
}