2015-06-19 3 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

Смежные вопросы