2016-05-04 2 views
-3

У меня есть массив JSON, очевидно. И я застрял в JS (нет JQuery).Javascript: Получить счетчик значений в JSON

Мне нужно найти каждое отдельное значение для «Сервиса» и количества каждого значения.

Таким образом, если 100 показывает вверх 3 раза и 101 показывает, до 5 раз, мне нужен результат, чтобы быть что-то вроде:

{ "100": "3", "101": "5"}

, и я предпочел бы не использовать обычный цикл, если есть что-то более кратким, я могу использовать как Foreach()

ответ

3

Прежде всего, преобразовать массив JSON в объект массива:

var json_ar = '[100, 100, 101, 100, 101, 101, 101, 101]'; 
var ar = JSON.parse(json_ar); 

с то дальше, это si mply counting, что немного зависит от того, что на самом деле есть объекты в вашем массиве. Если они номер, упрощенный

var counts = {}; 
ar.forEach(function(v) { 
    counts[v] = counts[v] ? counts[v] + 1 : 1; 
}); 

поможет вам counts = {'100': 3, '101': 5}.

0

Если вы не так любят <array>.forEach(<callback>) вы можете также использовать обычный for..of цикл:

var result = {}; 
for (var val of json_object) result[val] = result[val] ? result[val] + 1 : 1; 
Смежные вопросы