JavaScript部分匹配数组中的字符串

ngD*_*ugh 1 javascript arrays ecmascript-6

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

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

console.log(oi);
Run Code Online (Sandbox Code Playgroud)

我有一个部分匹配的数组,我想检查字符串是否包含任何部分arr.

meat当它匹配fe-并返回时,上面返回cheese

tym*_*eJV 7

你可以用Array.some.它将迭代一个数组,如果任何迭代返回true,则返回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);
Run Code Online (Sandbox Code Playgroud)

验证提供的字符串中是否存在至少一个元素(indexOf).