Javascript:获取JSON

时间:2016-05-04 20:52:09

标签: javascript json

显然我有一个JSON数组。而且我被困在JS(没有JQuery)。

我必须找到'服务'的每个不同价值。以及每个值的计数。

所以,如果100出现3次而101出现5次,我需要的结果如下:

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

我宁愿不使用常规循环,如果有更简洁的东西,我可以使用像forEach()

2 个答案:

答案 0 :(得分:3)

首先,将您的JSON数组转换为数组对象:

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

从那时起,它只是counting,它取决于你的数组中的对象实际上是什么。如果他们是数字,那就简单了

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

会给你counts = {'100': 3, '101': 5}

答案 1 :(得分:0)

如果你不喜欢<array>.forEach(<callback>),你也可以使用正常的for..of循环:

var result = {};
for (var val of json_object) result[val] = result[val] ? result[val] + 1 : 1;