我正在尝试转换
['peter', 'pan','Michael','peter','pan']
成
[{'peter':2},{'pan':2},{'michael':1}]
它计算名称出现的时间,然后将其打印出来。
但names[name] = 0;
不起作用,names[name] = names[name] + 1;
答案 0 :(得分:0)
var data = ['peter', 'pan','Michael','peter','pan'];
// create a temporary mapping holder.
var tmp = {};
for (var ii=0; ii < data.length; ii++) {
// set the key to 0 if it doesn't exist.
if (!(tmp[data[ii]])) {
tmp[data[ii]] = 0;
}
tmp[data[ii]] ++;
}
// create the output array.
var output = [];
for (var key in tmp)
{
var pObj = {};
pObj[key] = tmp[key];
output.push(pObj);
}
你可以在一个循环中完成所有这些,但我认为通过分解它可能更容易理解。