将一维数组重复元素合并为二维数组

安稳与你 提交于 2019-12-12 02:46:44

数组处理方法

将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: '玉米'}]]]


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!