运算符在Javascript中测试集合成员资格

我怎样才能有效地在Javascript中进行集合成员资格检查?我有一个可能很大的字符串数组,我需要验证给定的字符串是否是数组的成员.

最初我认为in运算符可以提供帮助,但是在阅读了Mozilla Developer Network上的文档后,我发现了它的用途is different.在Javascript中它检查指定的属性是否在指定的对象中.

出于性能相关的原因,我更喜欢使用js内置,但是如果不存在这样的函数,我可能最终会做以下其中一项:

>使用数组创建一个具有数组元素作为键的对象,然后使用
>迭代数组元素并逐项进行比较
>实现二进制搜索

任何意见?还是更好的想法?

谢谢

最佳答案
正如你在this问题中发现的那样,几乎每个框架都有一个功能,一些浏览器甚至本身实现了一个indexOf函数(尽管不是全部).

似乎他们都通过迭代数组来完成它,有些使用另一个方向(从结束开始),因为它看起来更快.对于次线性算法,您可能需要在键上实现某种带二进制搜索的哈希集.

可以在here找到HashSet实现的示例.

相关文章

什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据...
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:...
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面