0

配列があります。この配列には JavaScript オブジェクトが保存されます。

var items = [];

var item = {
   id: data.id,
   kategorie: data.kategorie,
   name: data.name
}

items.push(item);        // that will be done few times

今ならこんなアイテムも

items[0] = id: 1, kategorie: "scheduled", name: "Test1"
items[1] = id: 2, kategorie: "queued", name: "Test2"
items[2] = id: 3, kategorie: "recorded", name: "Test3"
items[3] = id: 4, kategorie: "recorded", name: "Test4" 
items[4] = id: 5, kategorie: "recorded", name: "Test5"

この配列を数えたい。少なくとも最終的な配列はこのようになるはずです。

arrayFinal[0] = kategorie: "scheduled", counted: 1
arrayFinal[1] = kategorie: "recorded", counted: 3

どうやってそれをするのですか?

4

5 に答える 5

1

underscore.js の_.countByルーチンを調べます。

counts = _.countBy(items, "kategorie");

これにより、次のようなオブジェクトが作成されます。

{ 
    recorded : 3,
    ...
}

それを配列形式に変換するには、次のものが必要です_.map

arrayFinal = _.map(counts, function(v,k){
    return {kategorie: k, counted: v};
});

以上で完了です。

于 2013-07-04T19:06:49.697 に答える