javascript - 多个字符串匹配而不使用javascript中的每个函数
问题描述
目前我在 javascript 中进行多个字符串匹配,我知道我们大多数人都熟悉 javascriptevery
方法,因此它提供了true
or false
. 有没有比这更好的表现方式。
'javascript code'.split(' ').every(val => 'you should code in javascript'.includes(val));
我的实际字符串长度很大,当我使用这个jsevery
方法时它成为性能瓶颈。
解决方案
您可以只检查这组单词是否是更大的一组单词的子集。
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);
推荐阅读
- mongodb - 在两个数组中查找并显示找到的一个
- reactjs - React 组件中的属性始终未定义
- android - 从子活动更改 BaseActivity 的工具栏标题
- jquery - jQuery - 变量正在跨实例共享
- oracle - Oracle如何在行选择中进行外连接
- google-cloud-sql - 如何将云功能连接到cloudsql
- angular - Angular:从指令访问 FormControl
- javascript - onesignal 通知限制到特定国家
- reactjs - React 中的 document.title(静态页面)
- c# - 垃圾收集禁用 Listview 源加载 Xamarin 表单