希望能帮助大家!
希望能帮助大家!
希望能帮助大家!
var arr = [
{ "id": "1001", "name": "值1", "value": "111" },
{ "id": "1001", "name": "值1", "value": "1111111" },
{ "id": "1002", "name": "值2", "value": "222222222" },
{ "id": "1002", "name": "值2", "value": "22254654" },
{ "id": "1002", "name": "值2", "value": "24564878" },
{ "id": "1003", "name": "值3", "value": "33333333" }
];
var map = {},
dest = [];
for (var i = 0; i < arr.length; i++) {
var aa = arr[i];
if (!map[aa.id]) { //如果map对象中没有aa变量中的id ,则运行
// console.log('1111')
// console.log(!map[aa.id],'[aa]的数据')
dest.push({
id: aa.id,
name: aa.name,
data: [aa]
});
map[aa.id] = aa;
} else {
// console.log(2222)
for (var j = 0; j < dest.length; j++) {
console.log(dest[j],'dest[j]的数据')
var bb = dest[j];
if (bb.id == aa.id) {
//如果bb的id 与 aa 的id相等,运行
bb.data.push(aa);
break;
}
}
}
}
console.log(dest, '运行完的数据');
当然代码还可以修改:
var arr = [
{ "id": "1001", "name": "值1", "value": "111" },
{ "id": "1001", "name": "值1", "value": "1111111" },
{ "id": "1002", "name": "值2", "value": "222222222" },
{ "id": "1002", "name": "值2", "value": "22254654" },
{ "id": "1002", "name": "值2", "value": "24564878" },
{ "id": "1003", "name": "值3", "value": "33333333" }
];
var map = {},
dest = [];
for (var i = 0; i < arr.length; i++) {
var aa= arr[i];
if (map[aa.id] === undefined) {
dest.push({
id: aa.id,
name: aa.name,
data: [aa]
});
map[aa.id] = dest.length - 1;
} else {
dest[map[msg.id]]['data'].push(msg);
}
}
console.log(dest, '运行完的数据');
欢迎大家评论补充更简单的方法