一、使用场景
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 (k in cenObj){
resObj.del.push(k);
}
return resObj;
}
var beArr = [1,2,3,4],
afArr = [2,3,6];
compare(beArr,afArr)