2015-06-19 38 views
-2

我想 ['peter', 'pan','Michael','peter','pan'] 转换成 [{'peter':2},{'pan':2},{'michael':1}] 其计数的时间出现的名称数量,然后打印出来。jQuery的JSON数组转换

names[name] = 0;不工作,也不做names[name] = names[name] + 1;

+1

这与jQuery或JSON无关 –

回答

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

你可以做到这一切在一个单一的循环,但我想这可能是更容易打破它理解。

+0

嘿约翰,谢谢你的帮助,它的工作原理。 – user3103750