javascript - 高效的 Javascript 数组查找

标签 javascript performance

如果我有一个字符串白名单,我想检查用户输入我的 javascript 程序的所有内容,最有效的方法是什么?我可以只拥有一个数组并循环遍历它直到找到匹配项,但那是 O(N)。有没有更好的方法,并且不涉及任何类型的键值查找,只是检查该值是否存在?

编辑:我想我正在寻找的是 C++ 中的集合的等价物,我可以在其中检查集合中是否已经存在我给出的值。

最佳答案

把它做成一个简单的js对象,而不是一个数组。

var whitelist = {
  "string1":true,
  "string2":true
}

然后你可以检查 if(whitelist[str]) 来检查它是否可用。

或者使用if(str in whitelist)

我希望第一个的性能稍好(我尚未验证),但第二个可读性更强,目的更明确。因此,您可以选择更合适的。

关于javascript - 高效的 Javascript 数组查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15555656/

相关文章:

javascript - 如果其他对象名称/键不断变化但要访问的对象名称/键保持不变,如何访问 Wikipedia API 中的对象?

javascript - 表格单元格中具有 100% 高度的图像居中链接(导航按钮)

java - Java 中 new 运算符与 newInstance() 的性能对比

performance - 逻辑应用和服务总线队列无法正确扩展逻辑应用运行实例

javascript - 执行名称位于数组中的函数

javascript - 由于发布数据中的关键字,jQuery Ajax 在发布数据时失败

javascript - 在我的服务工厂中,我查找一个大型数据集 - 我想保留它并检查它是否存在以避免再次调用它

c# - "direct"虚拟调用与 C# 中的接口(interface)调用的性能

performance - Go http 服务器在请求转发时性能不佳

C# LINQ 和涉及大型数据集的计算