如果我有一个字符串白名单,我想检查用户输入我的 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/