gpt4 book ai didi

javascript - 查找一个数组中另一个数组中不等长的元素 JavaScript

转载 作者:行者123 更新时间:2023-11-28 12:16:36 29 4
gpt4 key购买 nike

我正在从 Python 学习 JavaScript。在 Python 中,要查明一个列表中的某个项目是否在另一个列表中,我可以执行以下操作:

haystack = ['a', 'b', 'c', 'd', 'e', 'f']
needle = ['a', 'b', 'e']

[i for i in haystack if i in needle]

在 JavaScript 中,列表的长度似乎很重要,因为下面的代码返回 ab 而不是 abe:

var needle = ["a", "b", "e"]
var haystack = ["a", "b", "c", "d", "e", "f"]

var found = "";
for (i=0; i < haystack.length; i++){
for (j=0; j < needle.length;j++){
if (needle[i] === haystack[j]) {
found+=needle[j]
}
}
}
console.log(found);

Python 似乎并不关心列表的长度是否不等,但 JavaScript 却关心。我怎样才能在 JavaScript 中做到这一点?

最佳答案

你可以这样做

var needle = ["a", "b", "e"]
var haystack = ["a", "b", "c", "d", "e", "f"]
var list = needle.filter(word => haystack.indexOf(word) >= 0);

在此解决方案中,您不必显式迭代数组的长度。它返回一个过滤后的单词数组。

其他选择

var list = needle.filter(word => haystack.includes(word));

IE 不支持第二个。

您的索引编制错误

if (needle[i] === haystack[j])

将会

if (needle[j] === haystack[i])

并且您不是将这些字符串添加到数组中,而是通过连接它们形成另一个字符串。

关于javascript - 查找一个数组中另一个数组中不等长的元素 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48312708/

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