私は 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
ですか?true に等しくないのはいつarray.indexOf(item)==idx
ですか? これはアイテムの重複を防ぐためですか?しかし、それが実際に起こるのはいつでしょうか?