jsオブジェクト配列(JSON)ある共通フィールドに従ってグループ化
9153 ワード
次のオブジェクトの配列を指定します.
同じidフィールドパケットに基づいて、次のような形式に変換されます.
方法:
転載先:https://www.cnblogs.com/rysinal/p/5834446.html
[
{"id":"1001","name":" 1","value":"111"},
{"id":"1001","name":" 1","value":"11111"},
{"id":"1002","name":" 2","value":"25462"},
{"id":"1002","name":" 2","value":"23131"},
{"id":"1002","name":" 2","value":"2315432"},
{"id":"1003","name":" 3","value":"333333"}
]
同じidフィールドパケットに基づいて、次のような形式に変換されます.
[
{
"id": "1001",
"name": " 1",
"data": [
{"id": "1001", "name": " 1", "value": "111"},
{ "id": "1001", "name": " 1", "value": "11111"}
]
},
{
"id": "1002",
"name": " 2",
"data": [
{ "id": "1002", "name": " 2", "value": "25462" },
{ "id": "1002", "name": " 2", "value": "23131"},
{"id": "1002", "name": " 2","value": "2315432" }
]
},
{
"id": "1003",
"name": " 3",
"data": [
{"id": "1003", "name": " 3", "value": "333333" }
]
}
]
方法:
var arr = [
{
"id":"1001","name":" 1","value":"111"},
{
"id":"1001","name":" 1","value":"11111"},
{
"id":"1002","name":" 2","value":"25462"},
{
"id":"1002","name":" 2","value":"23131"},
{
"id":"1002","name":" 2","value":"2315432"},
{
"id":"1003","name":" 3","value":"333333"}
];
var map = {},
dest = [];
for(var i = 0; i < arr.length; i++){
var ai = arr[i];
if(!map[ai.id]){
dest.push({
id: ai.id,
name: ai.name,
data: [ai]
});
map[ai.id] = ai;
}else{
for(var j = 0; j < dest.length; j++){
var dj = dest[j];
if(dj.id == ai.id){
dj.data.push(ai);
break;
}
}
}
}
console.log(dest);
転載先:https://www.cnblogs.com/rysinal/p/5834446.html