一维数组重复元素处理
数组处理方法
将id相同的值中的num相加
//对比两个数组,如果id相同,则将数值相加 数组去重
function findSame(arr1, arr2) {
let oldAssetArr = [];
let oldAssetIdArr = [];
arr1.forEach((om, m) => {
oldAssetArr.push(om);
oldAssetIdArr.push(om.id);
})
arr2.forEach((newAssetItem, k) => {
let includeFlag = oldAssetIdArr.indexOf(newAssetItem.id);
if (includeFlag == -1) {
oldAssetArr.push(newAssetItem)
} else {
oldAssetArr[includeFlag].link_num = parseInt(oldAssetArr[includeFlag].link_num) + parseInt(newAssetItem.link_num);
}
})
return oldAssetArr;
}
将一维数组合并为二维数组
var map = new Map();
var newArr = [];
var testArr = [{id:1, name: '地瓜'},{id:2,name: '地瓜'},{id: 3, name: '红薯'},{id: 4, name: '玉米'}];
testArr.forEach(item => {
map.has(item.name) ? map.get(item.name).push(item) : map.set(item.name, [item]);
})
newArr = [...map.values()]; //[[{id:1, name: '地瓜'},{id:2,name: '地瓜'}],[{id: 3, name: '红薯'}],[{id: 4, name: '玉米'}]]]
来源:CSDN
作者:被门夹过的核桃
链接:https://blog.csdn.net/qq_40876719/article/details/103487970