首页 > 解决方案 > 多个字符串匹配而不使用javascript中的每个函数

问题描述

目前我在 javascript 中进行多个字符串匹配,我知道我们大多数人都熟悉 javascriptevery方法,因此它提供了trueor false. 有没有比这更好的表现方式。

'javascript code'.split(' ').every(val => 'you should code in javascript'.includes(val));

我的实际字符串长度很大,当我使用这个jsevery方法时它成为性能瓶颈。

标签: javascript

解决方案


您可以只检查这组单词是否是更大的一组单词的子集。

const needles = 'javascript code'.split(' ');
const haystack = 'you should code in javascript'.split(' ');

const is_subSet = (a, b) => {
  const setA = new Set(a), setB = new Set(b);
  return [...setA].every(v => setB.has(v));
};

is_subSet(needles, haystack);

推荐阅读