我怎样才能有效地在Javascript中进行集合成员资格检查?我有一个可能很大的字符串数组,我需要验证给定的字符串是否是数组的成员.
最初我认为in运算符可以提供帮助,但是在阅读了Mozilla Developer Network上的文档后,我发现了它的用途is different.在Javascript中它检查指定的属性是否在指定的对象中.
出于性能相关的原因,我更喜欢使用js内置,但是如果不存在这样的函数,我可能最终会做以下其中一项:
>使用数组创建一个具有数组元素作为键的对象,然后使用
>迭代数组元素并逐项进行比较
>实现二进制搜索
任何意见?还是更好的想法?
谢谢
最佳答案
正如你在this问题中发现的那样,几乎每个框架都有一个功能,一些浏览器甚至本身实现了一个indexOf函数(尽管不是全部).
似乎他们都通过迭代数组来完成它,有些使用另一个方向(从结束开始),因为它看起来更快.对于次线性算法,您可能需要在键上实现某种带二进制搜索的哈希集.
可以在here找到HashSet实现的示例.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。