var arr = [ 'Car', 'Car', 'Truck', 'Boat', 'Truck' ];
var hist = {};
arr.map( function (a) { if (a in hist) hist[a] ++; else hist[a] = 1; } );
console.log(hist);
results in
{ Car: 2, Truck: 2, Boat: 1 }
This works, too:
hist = arr.reduce( function (prev, item) {
if ( item in prev ) prev[item] ++;
else prev[item] = 1;
return prev;
}, {} );
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…