gpt4 book ai didi

javascript - 将数组与对象数组进行比较

转载 作者:行者123 更新时间:2023-11-30 08:35:03 25 4
gpt4 key购买 nike

我有一个包含所有 ID 的数组和一个包含所有有效 ID 的数组。
我只想检索无效的 ID。

它显然可以通过 for 循环来完成,但如果可能的话,我想使用 .filter() 方法来完成它,以使其简短并且可能更透明。

问题在于包含有效 ID 的数组与包含所有 ID 的数组看起来有很大不同。让我告诉你:

var allIds = ["1673","2456","8977","5467"];
var validIds = [ {_id: "2456"}, {_id: "5467"} ];

var invalidIds = []; //as non-associative array

invalidIds = allIds.filter(function(x) { return validIds[x]["_id"].indexOf(x) < 0 });

console.log(invalidIds); //Uncaught TypeError: Cannot read property '_id' of undefined

有办法解决吗?

最佳答案

如果您真的坚持不使用 for 循环,您可以,但最好这样做,因为它可以让您在找到匹配项后缩短检查时间。

var allIds = ["1673","2456","8977","5467"];
var validIds = [ {_id: "2456"}, {_id: "5467"} ];
var invalidIds = allIds.filter(function (id) {
return !validIds.reduce(function (contains, item) {
return contains || (item._id === id);
}, false);
}); //["1673", "8977"]

关于javascript - 将数组与对象数组进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32266641/

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