js返回两个数组差异值


初始化数据

// 定义三个数组:
// arr:主数组,包含了多个消息对象
// arr2:包含了部分消息ID和未读标记的数组
// arr3:初始为空,后面用于存放过滤后的结果
let arr = [
    { messageId: 1154198777724319, appid: "xiniv2", bussType: 1, type: 2},
    { messageId: 1154247598220693, ppid: "xiniv2", bussType: 1, type: 2},
    { messageId: 1154247598222223, appid: "xiniv2", bussType: 1, type: 2},
    { messageId: 1154247598222224, appid: "xiniv2", bussType: 1, type: 2},
    { messageId: 1154247598222225, appid: "xiniv2", bussType: 1, type: 2}
];

let arr2 = [
    {"messageId":1154198777724319,"unread":true},
    {"messageId":1154247598220693,"unread":true}
];

let arr3 = [];

// 准备进行过滤
// 为了优化后续的过滤操作,使用两个临时数组:
// tempArray1:用于存放arr2中的消息ID作为键,值为true
// tempArray2:用于存放过滤后的结果,即arr中存在但arr2中不存在的元素
var tempArray1 = [];
var tempArray2 = [];

// 填充临时数组tempArray1
// 遍历arr2,将消息ID作为键存储到tempArray1中
for(let i = 0; i < arr2.length; i++){
    tempArray1[arr2[i].messageId] = true;
}

// 进行过滤操作
// 遍历arr数组,如果tempArray1中不存在arr的消息ID,则将此元素添加到tempArray2
for(let i = 0; i < arr.length; i++){
    if(!tempArray1[arr[i].messageId]){
        tempArray2.push(arr[i]);
    }
}
// 最终,tempArray2中存放的就是arr中存在但arr2中不存在的元素


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM