该问题出现在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);
}
}
}
运行结果