const arr = ['be-', 'fe-', 'automated'];
const str = 'fe-cheese';
const oi = arr.includes(str) ? 'cheese' : 'meat';
console.log(oi);
我有一个部分匹配项数组,我想检查一下字符串是否包含arr
中的任何部分项。
以上内容应与meat
相匹配并返回fe-
时返回cheese
答案 0 :(得分:7)
您可以使用Array.some
。如果迭代的 any 返回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);
验证提供的字符串中是否存在至少一个元素(indexOf)。