gpt4 book ai didi

javascript - 过滤方法用另一个数组替换一个数组

转载 作者:行者123 更新时间:2023-11-27 22:48:46 27 4
gpt4 key购买 nike

我正在尝试从另一个数组中过滤掉一个数组的值。当使用Javascript的过滤方法时,我的脚本如下所示。

var notUsed = ["Advanced Tac. Training Area", "Dunbarton Railroad Yard"];

var areas = ["A Area", "Advanced Tac. Training Area", "B Area", "Dunbarton Railroad Yard", "C Area"];

areas.filter(function(){
return areas = notUsed;
})
console.log(areas);

根据文档,当我运行过滤器函数后控制台 areas 数组时,该数组应如下所示

"A Area", "B Area", "C Area"

然而,事实并非如此。相反,我获取的是 notUsed 数组的值,因此它本质上是用 notUsed 数组替换 Areas 数组。谁能解释为什么会发生这种情况以及我如何在没有 notUsed 数组的值的情况下获取 areas 数组?

如果已经有人提出这个问题,请在评论中告诉我并链接到已回答的问题。这样我就可以删除这个并消除重复。

最佳答案

两个错误。

  1. areas = notUsed 只会将 notUsed 的值分配给 areas,而不会比较它们。

  2. filter 返回一个新数组。它不会改变原始数组。

或许你可以这样写

areas = areas.filter(function (area) {
return notUsed.indexOf(area) === -1;
});

现在,notUsed.indexOf(area) 返回 notUsed 数组中 area 的索引。如果找不到,则返回 -1

此外,我们将filter的结果分配回areas

关于javascript - 过滤方法用另一个数组替换一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38224550/

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