在ES6中,可以使用Array.from()方法將類數組對象(偽數組)轉換為真正的數組。
偽數組是一種類數組對象,它具有類似數組的特性,但不具備數組的方法和屬性。常見的偽數組包括arguments對象、DOM NodeList對象等。
下面是使用Array.from()方法將偽數組轉換為數組的示例代碼:
// 偽數組
var arrayLike = {
0: 'a',
1: 'b',
2: 'c',
length: 3
};
// 將偽數組轉換為數組
var array = Array.from(arrayLike);
console.log(array); // ['a', 'b', 'c']
Array.from()方法接受一個可迭代對象作為參數,并返回一個新的數組。該方法會遍歷可迭代對象并逐個將其元素添加到新數組中。
需要注意的是,Array.from()方法只能轉換具有數值鍵和length屬性的對象。因此,在將偽數組轉換為數組之前,需要確保偽數組對象具有正確的鍵和長度屬性。
另外,如果要將特定類型的偽數組轉換為數組,可以使用Array.from()方法的第二個參數進行映射。例如,將DOM NodeList對象轉換為數組:
// DOM NodeList對象
var nodeList = document.querySelectorAll('div');
// 將DOM NodeList對象轉換為數組
var array = Array.from(nodeList, element => element.textContent);
console.log(array); // 包含了每個div元素的文本內容的數組
上述示例中,Array.from()方法的第二個參數是一個映射函數,用于將每個元素映射為其文本內容,并將映射結果添加到新數組中。
總結:使用Array.from()方法可以方便地將偽數組轉換為數組,并且可以通過第二個參數進行元素的映射。