本文主要是介绍对比两个数组,过滤掉重复的每一项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
该问题出现在APICloud的代码上,使用的是两个for循环,在for循环内有个push,导致结果push了两次。因其他原因不能对其for循环进行修改,所以在push之后,赋值前对数组进行过滤重复。
尝试过 filter,map等都出现报错问题
原数组(举例)
var list1 = [{id: 0,name: '张三',},{id: 1,name: '李四',},{id: 2,name: '王五',},{id: 3,name: '赵六',},]var list2 = [{id: 0,name: '张三',},{id: 1,name: '李四',},{id: 2,name: '王五',},{id: 3,name: '赵六',},{id: 4,name: '王八',},{id: 5,name: '孙九',},{id: 6,name: '吴十',},]
// 过滤掉重复的,使其 var list2 = [{id: 4,name: '王八',},{id: 5,name: '孙九',},{id: 6,name: '吴十',},
]
过滤代码
// 这里list2以list1作为目标进行过滤for (var i=0; i<list2.length; i++) {for (var j=0; j<list1.length; j++) {// 这里的id要注意if (list2[i].id == list1[j].id) {list2.splice(i, 1);}}
}
运行结果
这篇关于对比两个数组,过滤掉重复的每一项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!