1. 程式人生 > >ES6學習筆記----陣列的擴充套件

ES6學習筆記----陣列的擴充套件

1、Array.from   應用兩類:類似於陣列的物件和可遍歷的的物件(包含Map和Set),只有轉換成真正的陣列,才可使用陣列的方法。

     類比:...擴充套件運算子也可以使某些物件變成陣列

2、Array.of 主要彌補陣列建構函式Array()的不足,引數的個數的不同,會導致Array()的差異

  沒有引數,表示建立空陣列

  一個引數,表示指定建立陣列的長度

   2個以上,表示規定陣列的元素

Array.of(3, 11, 8) // [3,11,8]
Array.of(3) // [3]
Array.of(3).length //
1

3、copyWithin,在當前陣列內部,將指定位置的成員複製到其他位置,然後返回到當前陣列

      Array.copyWithin(target,start,end)

    target(必須):從該位置開始替換資料

       start(可選):從該位置開始讀取資料,預設為0

       end(可選):到該位置前停止讀取資料,預設等於陣列長度

4、find()  和  findIndex()

      find()方法,用於找出第一個符合條件的陣列成員

       如果找到第一個,返回--值符合的成員,,如果沒有符合,返回undefined.

    回撥函式可以接受三個引數: 依次為當前的值,當前的位置和原陣列

var c = [1, 5, 10, 15].find(function (value, index, arr) {
    return value > 9;
});
console.log('c:' + c);
var d = [1, 5, 10, 15].findIndex(function (value, index, arr) {
    return
value > 9; });

     findIndex() 與find類似,一般情況下,返回第一個符合條件的成員,若都不符合,則返回-1.

    和indexOf相比的優點:可以發現NaN

5、fill()方法使用給定值,填充一個數組。

     一個引數:陣列全部抹去,填充為引數值

    三個引數:用於指定填充的起始位置和結束位置。

// 陣列例項的fill()
var e = ['a', 'b', 'c'].fill(7);
console.log(e);
// fill()海可以接受第二個和第三個引數,用於指定填充的起始位置和結束位置
var f = ['a', 'b', 'c'].fill(7, 1, 2);
console.log(f);

6、陣列例項的entries(),keys(),values(), 

    entries()是對鍵值對的遍歷

   keys()是對鍵名遍歷

   values()是對鍵值的遍歷。

// 陣列例項的entries(), keys()和values()
for (let index of ['a', 'b'].keys()) {
    console.log(index);
}
// for (let elem of ['a', 'b'].values()) {
//     console.log(elem);
// }
for (let [index, elem] of ['a', 'b'].entries()) {
    console.log(index, elem);
}

7、includes();

     表示某個陣列是否包含某個給定的值,返回true或false

[1,2,3,4].includes(2)//true
[1,2,3,4].includes(5)//false