2

この構造で1つのjsonを取得しています:

{
data: { 
    ads: [
            {           
            name: "0",
            id: "81"
            },
            {           
            name: "0",
            id: "82"
            }           
        ]
    }
}

このような既存のものからもう1つのjsonを作成したい。

{
json{
    81:[
            {           
                name: "a",
                id: "81"
            },
        ]
    82:[
        {           
                name: "c",
                id: "82"
            }
    ]
  }

}

IDに従って作成する方法がわかりません。誰でもこれで私を助けることができますか?JavaScriptを使用して、これを作成したいです

4

1 に答える 1

4

You can use bracket notation to achieve this:

var obj = {
    data: { 
        ads: [
            {           
            name: "0",
            id: "81"
            },
            {           
            name: "0",
            id: "82"
            }           
        ]
    }
};

var newobj = {
  json: {}
};
for(var i in obj.data.ads) {
    var a = obj.data.ads[i];
    if(!(a.id in newobj.json)) {
        newobj.json[a.id] = [];
    }
    newobj.json[a.id].push({ name: a.name, id: a.id });
}

Here is a fiddle to demonstrate.

于 2013-10-28T10:25:13.757 に答える