我的数组很长,我想检查其他数组中的一个元素是否匹配第一个数组中的任何一个。
let name;
let list = ["Kat", "Jane", "Jack"]; // for example
let input = ["Hey", "i'm", "Jack"];
if (input.forEach(el => el.match(list))) {
do.something();
name = ''; // get name somehow
}
但是上面的代码总是返回null。
答案 0 :(得分:2)
forEach
返回undefined
,因此条件永远不会过去。同样,您似乎误用了match
。
您可以改用find
和includes
let list = ["Kat", "Jane", "Jack"]; // for example
let input = ["Hey", "i'm", "Jack"];
let name = input.find(name => list.includes(name))
if (name) {
console.log(name)
}
基本上是“在“输入”中找到第一个元素,其中“列表”包括该元素”
答案 1 :(得分:0)
您需要在if (input.includes(el))
循环中检查forEach
:
let name;
let list = ["Kat", "Jane", "Jack"]; // for example
let input = ["Hey", "i'm", "Jack"];
input.forEach(el => {
if (list.includes(el)) {
console.log(el + ' is in list')
}
})