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')
}