首頁  >  文章  >  web前端  >  js數組知識總結分享

js數組知識總結分享

小云云
小云云原創
2018-03-28 15:52:491311瀏覽


1、 indexOf方法有兩個缺點,一是不夠語意化,它的意思是找到參數值的第一個出現位置,所以要去比較是否不等於-1,表達起來不夠直覺。二是,它內部使用嚴格相等運算子(===)進行判斷,這會導致對NaN#的誤判。

NaN!=NaN
//ES5[NaN].indexOf(NaN)// -1
//ES6[1, 2, NaN].includes(NaN) // true

2、 fill方法也可以接受第二個和第三個參數,用來指定填滿的起始位置和結束位置。

  如果填滿的型別為對象,那麼被賦值的是同一個記憶體位址的對象,而不是深拷貝物件。

let arr = new Array(3).fill({name: "Mike"});arr[0].name = "Ben";
arr// [{name: "Ben"}, {name: "Ben"}, {name: "Ben"}]let arr = new Array(3).fill([]);
arr[0].push(5);arr// [[5], [5], [5]]

3、陣列實例的find方法,用來找出第一個符合條件的陣列成員。它的參數是一個回呼函數,所有陣列成員依序執行該回呼函數,直到找出第一個傳回值為true的成員,然後傳回該成員。如果沒有符合條件的成員,則傳回undefined陣列實例的findIndex方法的用法與find方法非常類似,傳回第一個符合條件的陣列成員的位置,如果所有成員都不符合條件,則傳回-1這兩個方法都可以接受第二個參數,用來綁定回呼函數的this物件。

4、陣列實例的copyWithin方法,在目前陣列內部,將指定位置的成員複製到其他位置(會覆寫原有成員),然後傳回目前陣列。也就是說,使用這個方法,會修改目前數組。

它接受三个参数。

  • target(必需):从该位置开始替换数据。如果为负值,表示倒数。

  • start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示倒数。

  • end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。

[1, 2, 3, 4, 5].copyWithin(0, 2, 4)// [3, 4, 3, 4, 5]

4、Array.of基本上可以用来替代Array()new Array(),并且不存在由于参数不同而导致的重载。它的行为非常统一。

//ES6Array.of() 
// []Array.of(undefined) 
// [undefined]Array.of(1) 
// [1]Array.of(1, 2) 
// [1, 2]//ES5Array() 
// []Array(3) 
// [, , ,]Array(3, 11, 8) 
// [3, 11, 8]

Array.of方法可以用下面的代码模拟实现。

function ArrayOf(){
  return [].slice.call(arguments);}

相关推荐:

js数组操作实例分析

JS数组去重方法总结

js数组常用的一些排序法

以上是js數組知識總結分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn