很多情況下我們需要將類數組的對象(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" ]