我想提高我的JavaScript的理解,所以我一直在通过Zepto库寻找。我碰到这条线:Zepto使用array.filter
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
是不是等于true?这是为了防止重复项目?但是什么时候会真的发生?
我觉得'indexOf'的整个使用是不必要的。为什么他们不能“回归真实”;每次呢?我认为你是对的,但它使得克隆 – Ian
@Ian:这就是我想知道的。什么时候'array.indexOf(item)== idx'不等于'true'? – cegfault
哈哈,只要你编辑和提到“这是为了防止重复的项目?”,我意识到它在做什么......以及其他几个谁发布:) – Ian