<div id="app"></div>
var jsonArr = [
{
id: 1,
name: '苹果',
price: 3,
},
{
id: 2,
name: '苹果',
price: 5,
},
{
id: 3,
name: '梨子',
price: 6,
},
{
id: 4,
name: '苹果',
price: 5,
},
{
id: 5,
name: '苹果',
price: 5,
},
{
id: 6,
name: '梨子',
price: 6,
}
];
let groudFun = function(data, name, update) {
if(!data) return '未传入数组';
if(!name) return '未传入关键字';
if(!update) return '未传入新数组健名';
let arr = [].concat(data);
data.map((item, index) => {
for(let i=index+1; i<arr.length; i++) {
let items = data[i];
if(index != i) {
if(item[name] == items[name]) {
arr.splice(i,1)
}
}
}
});
let arr2 = [];
arr.map(item=>{
arr2.push(item[name])
});
let obj = {};
arr2.map(item=>{
let as = [];
data.map((items, index) => {
if(item == items[name]){
let objs = {}
update.map(ups=>{
objs[ups] = items[ups];
})
as.push(objs);
}
});
obj[item] = as;
});
return obj
}
let newArry = groudFun(jsonArr, 'name', ['price', 'id']);
document.write(JSON.stringify(newArry));
console.log(newArry);