类数组转数组的5种方法
原创
©著作权归作者所有:来自51CTO博客作者刘什么刘的原创作品,请联系作者获取转载授权,否则将追究法律责任
- 非常简单的方法是使用
Array.from()
方法。它接受一个可迭代对象(如类数组对象)并返回一个新的数组。
const arrayLike = {0: 'a', 1: 'b', 2: 'c', length: 3};
const array = Array.from(arrayLike);
console.log(array); // ['a', 'b', 'c']
- 另一种方法是使用扩展运算符
...
来展开类数组对象,然后将其放在一个新的数组中。
const arrayLike = {0: 'a', 1: 'b', 2: 'c', length: 3};
const array = [...arrayLike];
console.log(array); // ['a', 'b', 'c']
- 使用
Array.prototype.slice.call()
方法将类数组对象转换为数组。
const arrayLike = {0: 'a', 1: 'b', 2: 'c', length: 3};
const array = Array.prototype.slice.call(arrayLike);
console.log(array); // ['a', 'b', 'c']
- 类数组对象也可以使用
Array.prototype.map()
方法来转换为数组。
const arrayLike = {0: 'a', 1: 'b', 2: 'c', length: 3};
const array = Array.prototype.map.call(arrayLike, (item) => item);
console.log(array); // ['a', 'b', 'c']
- 最后一种方法是使用
Array.prototype.concat()
方法与空数组结合使用。
const arrayLike = {0: 'a', 1: 'b', 2: 'c', length: 3};
const array = Array.prototype.concat.call([], arrayLike);
console.log(array); // ['a', 'b', 'c']