很多情況下我們需要将類數組的對象(key是以0到n的數字或字元串,具有length屬性。例如:Arguments對象)轉化為一個數組來進行各種例如forEach的數組操作,在ES5中是利用類數組對象強制調用Array對象的slice方法來進行轉換的,在ES6中Array擴充了from方法來進行轉換,另外,ES6中的擴充運算符也可将某些類數組對象轉化為數組
各方法示例如下:
- 強制調用Array對象的slice方法
console.log(Array.prototype.slice.call({
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
})); //Array(3) [ "a", "b", "c" ]
- Array.from()方法
console.log(Array.from({
'0':'a',
'1':'b',
'2':'c',
length:3
})); //Array(3) [ "a", "b", "c" ]
- 擴充運算符...
console.log((function (a,b,c) {
console.log([...arguments]);
}("a","b","c"))); //Array(3) [ "a", "b", "c" ]