我想提高我的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