将密钥收集到数组JavaScript中的最佳方法?
获取数组中唯一字符串的最佳方法是什么?有时,从多种方法中选择一种是有意义的,以下是3种:将密钥收集到数组JavaScript中的最佳方法?,javascript,arrays,optimization,Javascript,Arrays,Optimization,获取数组中唯一字符串的最佳方法是什么?有时,从多种方法中选择一种是有意义的,以下是3种: 创建一个数组,对于推送的每个新项目,首先检查.indexOf(array,newItem)=-1 创建一个散列,所有值均为true,例如{key1:true,key2:true},然后\ukeys(散列) 推送数组中的所有项,然后运行keys=\uq.uniq(keys) 上面的代码正在使用帮助程序 了解JavaScript构造/vm的内部知识,以及一些正式的算法知识,可能会使这成为一个不需要动脑筋的问题,
.indexOf(array,newItem)=-1
true
,例如{key1:true,key2:true}
,然后\ukeys(散列)
keys=\uq.uniq(keys)
了解JavaScript构造/vm的内部知识,以及一些正式的算法知识,可能会使这成为一个不需要动脑筋的问题,但我还没有做到这一点。我确信不同的浏览器(和节点)会有所不同,但可能有一种更好的方法。有什么想法吗?对于数组的每个元素,第一个解决方案必须循环遍历数组的每个元素。这使得
O(n²)
变得复杂
第二种可能是最好的,因为它只循环数组,然后循环键。这基本上是O(2n)
,也就是O(n)
第三个取决于uniq()
的效率。例如,它很可能只是方法2的一个实现。在小规模(每个对象少于50个关键点)下,第一个解决方案的速度似乎是节点中第二个解决方案的3倍多。