2.array.from()
3.array.of()
4.陣列例項的find()和findindex()
5.陣列例項的fill()
6.陣列例項的entries(),keys(),和values()
7.陣列例項的includes()
含義:擴充套件運算子是三個點(…),用於將乙個陣列轉為用逗號分隔的引數序列,主要用於函式呼叫。
function
demo
(x,y)
let arr =[3
,4];
demo
(...arr)
;//7
上面例子中,擴充套件運算子將arr
陣列轉換為引數序列,並執行demo
函式。
1.1擴充套件運算子的應用
1.複製陣列
由於陣列是復合資料型別,直接複製,只是複製了陣列的位址(指標),並不是轉殖乙個全新的陣列。
let arr1 =[1
,2,3
];let arr2 = arr1;
//只是複製了arr1陣列的指標
arr2[0]
=100
; console.
log(arr1)
;//array(3) [ 100, 2, 3 ]
如果要轉殖乙個陣列,可以採用下面的**:
//es5實現:
var a =[1
,2,3
,4];
var b = a.
concat()
;//es6實現:
let arr1 =[1
,2,3
];let arr2 =
[...arr1]
;//使用擴充套件運算子轉殖乙個陣列
2.合併陣列
var a1 =
["a"
,"b"
,"c"];
var a2 =
["d"
,"e"];
var a3 =
["f"];
//es5實現:
a1.concat
(a2,a3)
;//es6實現:
[...a1,
...a2,
...a3]
;
3.實現了 iterator 介面的物件
任何定義了遍歷器(iterator)介面的物件,都可以用擴充套件運算子轉為真正的陣列。相反,如果乙個物件沒有定義遍歷器(iterator)介面,就不能使用擴充套件運算子將其轉換為陣列。
let nodelist = document.
queryselectorall
('div');
let array =
[...nodelist]
;
上面例子中,queryselectorall
方法返回的是乙個nodelist
物件。它不是陣列,而是乙個類似陣列的物件。這時,擴充套件運算子可以將其轉為真正的陣列,原因就在於nodelist
物件實現了 iterator 。
注意:對於沒有定義iterator的物件,擴充套件運算子不能將其轉換為陣列。
let obj =
[...obj]
;//typeerror: obj is not iterable
上面例子中,obj
沒有定義iterator,所以不能使用擴充套件運算子將其轉換為陣列。這時可以使用array.from()
方法將其轉換為陣列。 es6學習筆記(三)陣列的擴充套件
一 擴充套件運算子 2,3,4,5 console.log 1,2,3,4,5 5 列印出來的結果是1,2,3,4,5,5 es5 function f x,y,z var args 1,2,3 陣列不能作為引數 es6 function f x,y,z var args 1,2,3 f args ...
ES6學習筆記之陣列的擴充套件
擴充套件運算子 spread 是三個點 將乙個陣列轉為用逗號分隔的引數序列。console.log 1,2,3 1 2 3const arr1 1,2,3,4,5 const arr2 arr1 arr2 0 666 console.log arr2 arr2 666,2,3,4,5 console...
ES6學習筆記 陣列的擴充套件
1 array.from 應用兩類 類似於陣列的物件和可遍歷的的物件 包含map和set 只有轉換成真正的陣列,才可使用陣列的方法。模擬 擴充套件運算子也可以使某些物件變成陣列 2 array.of 主要彌補陣列建構函式array 的不足,引數的個數的不同,會導致array 的差異 沒有引數,表示建...