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

时间:2018-07-03 20:07:15

标签: javascript arrays ecmascript-6

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 :(得分: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)。