2016-05-04 4 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;