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) { returnvalue > 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