0

私はオブジェクトのサンプルを持っていますdata

[Object, Object, Object]
  0: Object
    test_id: "1"
    area: "high"
  1: Object
    test_id: "1"
    area: "saw"
  2: Object
    test_id: "2"
    area: "look"

でグループ化して新しいオブジェクトを作成しようとしていますtest_id

var obj = new Object();
$.each(data, function(k, v){
    obj[v.test_id] += {area: v.area};
});

これは機能していないようです。1つのオブジェクト行のみが返されます...

私は次のようなものを取得しようとしています:

1: {
    {area: "high"}
    {area: "saw"}
}
2: {
    {area: "look""
}

何か案は?ありがとう

4

1 に答える 1

1

編集後、何かに気づきました。名前のないプロパティを使用してjavascriptオブジェクトを作成しようとしていますが、これは形式ではありません。JSON(javascriptオブジェクト表記)では、各プロパティに値が必要です。格納しようとしているものは、配列により適しています。

代わりに、それを配列にプッシュします

    $.each(data, function(k, v){
    obj[v.test_id].area.push(v.area);
});

最初にobj[v.test_id]を作成し、そのareaプロパティを[]に設定することを忘れないでください。これにより、次のようになります。

1: {
    area: ["high","saw"]
}
3: {
    area: ["look"]
}

また、アンダースコアの使用を検討する場合は、非常に強力な(まだ基本的な)収集メソッドがあります。http: //underscorejs.org/#groupByを参照してください。

于 2013-01-13T07:50:03.073 に答える