JavaScript частично соответствует строке внутри массива - PullRequest
0 голосов
/ 03 июля 2018
const arr = ['be-', 'fe-', 'automated'];

const str = 'fe-cheese';
const oi = arr.includes(str) ? 'cheese' : 'meat';

console.log(oi);

У меня есть массив частичных совпадений, и я хочу проверить, содержит ли строка какие-либо из партиалов в arr.

Выше возвращается meat, когда оно должно совпадать fe- и возвращается cheese

1 Ответ

0 голосов
/ 03 июля 2018

Вы можете использовать Array.some. Он будет перебирать массив и возвращать true, если any из итераций вернет true. Примечание: Это имеет дополнительное преимущество выполнения короткого замыкания, означающее, что как только он достигает первой итерации, которая возвращает true, он не продолжает остальные итерации, поскольку они не нужны.

const arr = ['be-', 'fe-', 'automated'];

const str = 'fe-cheese';
const oi = arr.some(a => str.indexOf(a) > -1) ? 'cheese' : 'meat';

console.log(oi);

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

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