我正在努力提高我对 Javascript 的理解,所以我一直在浏览 Zepto 库。我遇到了这条线:
uniq = function(array){
return array.filter(function(item, idx){
return array.indexOf(item) == idx
})
}
这个函数的目的是什么?据我所知,它正在创建一个新的、独特的元素数组,对吧?但它本质上不只是克隆数组吗?如果是这样,不是array.slice()
更快吗?
array.indexOf(item)
最后,更改为不会提高性能array.indexOf(item,idx)
吗?或者更好,只是return true
?什么时候array.indexOf(item)==idx
不等于真?这是为了防止重复项目吗?但那什么时候会真正发生呢?