Сопоставить строку с массивом - PullRequest
0 голосов
/ 07 декабря 2018

У меня длинный массив, и я хочу проверить, совпадает ли один из элементов другого массива с любым из первого массива.

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
}

Но приведенный выше код всегда возвращает ноль.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Вам необходимо проверить 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')
  }
})
0 голосов
/ 07 декабря 2018

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

По сути "найдите первый элемент в 'input', где 'list' включает этот элемент"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...