87,910
社区成员
发帖
与我相关
我的任务
分享
var arr = [
{ a : 1 , b : 1},
{ a : 2 , b : 1},
{ a : 3 , b : 3},
{ a : 1 , b : 1},
{ a : 5 , b : 5}
];
arr=arr.map(function(item,index,arr){
const i=arr.find(_item=>item.b===_item.b);
if(i!==item){
i.a.push(item.a);
return undefined;
}else{
i.a=[i.a];
return i;
}
}).filter(item=>item!==undefined);
console.log(arr);
var arr = [
{ a : 1 , b : 1},
{ a : 2 , b : 1},
{ a : 3 , b : 3},
{ a : 1 , b : 1},
{ a : 5 , b : 5}
]
var tb = [];
var narr = [];
for (var i = 0; i < arr.length; i++) {
var n = tb.indexOf(arr[i].b);
if (n==-1) {
tb.push(arr[i].b);
narr.push({ a : [arr[i].a] , b : arr[i].b});
} else {
narr[n].a.push(arr[i].a);
}
}
alert(JSON.stringify(narr,null,4));