json数组去重,属性值累加
2021-01-04 本文已影响0人
Yong_bcf4
function uniq1(arr) {
const array = [];
for (let i = 0; i < arr.length; i++) {
let isChage = true;
for (let z = 0; z < array.length; z++) {
if (arr[i].name === array[z].name) {
isChage = false;
}
}
if (isChage) {
array.push(arr[i]);
}
}
return array;
}
const arr = [{name:1,a:2, c:3, total:4},{name:1, a:4,c:3,total:5}]
console.log(uniq1(arr))
属性值累加
function uniq2(arr){
const newData = []
arr.forEach(el=>{
const result = newData.findIndex(ol=>{return el.name === ol.name})
if(result!== -1){
newData[result].data = Number(newData[result].data) + Number(el.data)
}else{
el.data = Number(el.data)
newData.uniq2(el)
}
})
return newData
}
console.log(uniq2([{name:1,a:2, c:3, data:4},{name:1, a:4,c:3,data:5},{name:2, a:4,c:3,data:5}]))