对比两个数组获取增加和减少的元素

30 阅读1分钟

一、使用场景

      1、对比两个数组增加、减少的元素;

      2、实际项目中当前台向后台发送数组格式的数据时,可以先进行新老数据对比,每次只向后台发送改变的。增加传送效率;

二、代码

/**
 * 功能介绍:返回一个对象里面包含后一个数组比第一个数组增加、减少的数据(适用于去重过后的数组)
 * 参数:
 * beforeArr:前一个数组
 * afterArr:后一个数组
 */
function compare(beforeArr,afterArr){
    let resObj = {
        add : [],
        del : []
       },
       cenObj = {};
   //把beforeArr数组去重放入cenObj 
    for(let i=0;i<beforeArr.length;i++){
        cenObj[beforeArr[i]] = beforeArr[i];
    }
    //遍历afterArr,查看其元素是否在cenObj中
    for (let j=0;j<afterArr.length;j++){
        if (!cenObj[afterArr[j]]){
            resObj.add.push(afterArr[j]);
        }else {
            delete cenObj[afterArr[j]]
        }
    }
    for (let k in cenObj){
        resObj.del.push(k);
    }
    return resObj;
}
var beArr = [1,2,3,4],
    afArr = [2,3,6];
compare(beArr,afArr)

三、运行结果:

image.png

原文链接:blog.csdn.net/qq_15509267…