gpt4 book ai didi

javascript - 使用带标志的 javascript filter()

转载 作者:行者123 更新时间:2023-11-27 23:02:17 25 4
gpt4 key购买 nike

我想返回arr2,但想通过与arr比较来提示用户是否有变化。通过下面的方法,如果 arr2 有任何缺失的项目,我得到的 id 为 undefined。

var arr = [{
id: 1,
name: 'something'
}, {
id: 2,
name: 'something2'
}]

var arr2 = [{
id: 1,
name: 'something'
}]

var result = arr.filter(function(obj, i) {
return obj.id == arr2[i].id;
});

document.write(JSON.stringify(result))

最佳答案

代码中的问题是 arr[1] 未定义,并且您试图获取未定义的 id 属性。现在你可以做的是,获取数组中的 id,然后获取索引并根据过滤器中的索引进行检查。

var arr = [{
id: 1,
name: 'something'
}, {
id: 2,
name: 'something2'
}]

var arr2 = [{
id: 1,
name: 'something'
}];

var arrIds = arr2.map(function(v) {
return v.id;
});

var result = arr.filter(function(obj) {
var i = arrIds.indexOf(obj.id);
return i > -1 &&
obj.name == arr2[i].name; // check name property here
});

document.write(JSON.stringify(result))

关于javascript - 使用带标志的 javascript filter(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36975746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com