将字符串匹配到数组

时间:2018-12-07 14:13:45

标签: javascript node.js regex match

我的数组很长,我想检查其他数组中的一个元素是否匹配第一个数组中的任何一个。

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。

2 个答案:

答案 0 :(得分:2)

forEach返回undefined,因此条件永远不会过去。同样,您似乎误用了match

您可以改用findincludes

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')
  }
})