gpt4 book ai didi

javascript - 在另一个数组中查找项目并从数组中删除匹配的项目

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

我有两个数组,其记录如下:

var cars = ["Saab", "Volvo", "BMW"]; 

var cars1 = ["Saab", "Volvo", "BMW"];

现在我想从 Cars1 中删除匹配元素,所以最后我的 Cars1 数组将如下所示:

var cars = ["Saab", "Volvo", "BMW"]; 

var cars1 = ["Saab", "Volvo", "BMW"];

for (var i = 0; i < cars1.length; i++) {
for (var j = 0; j < cars.length; j++) {
if (cars1[i] == cars[j]) {
cars1.splice(i, 1);
break;
}
}
}
console.log(cars1)

预期输出:

 var cars1 = []; 

我没有得到预期的输出。

最佳答案

使用简单的功能方法来节省一些空间并使其更干净,我建议使用 Array.prototype.filterArray.prototype.indexOf 结合像这样:

var cars = ["Saab", "Volvo", "BMW"]; 

var cars1 = ["Saab", "Volvo", "BMW", "VW"];

cars1 = cars1.filter(car => cars.indexOf(car) < 0)

console.log(cars1)

filter方法为每个元素调用传递的回调,如果回调返回 false如果返回true则不会返回该元素返回该元素。请注意 filter方法返回一个新数组,并且不修改当前数组!感谢@denys-séguret 提及!

indexOf返回传递的元素的索引。如果没有找到-1被返回。这就是为什么要过滤掉所有元素,其中索引为 < 0 ,仅返回 cars 中尚未存在的元素数组。

关于javascript - 在另一个数组中查找项目并从数组中删除匹配的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42510654/

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