1. Array.from()
是ES6中的方法,用于将类数组转换为数组。
let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; // ES5的写法 var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c'] // ES6的写法 let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
2、如果数据结构有是遍历器(Symbol.iterator
)接口
var args = [...arguments];
3、slice方法
使用Array的slice方法,此方法如果不传参数的话会返回原数组的一个拷贝,因此可以用此方法转换类数组到数组;
// 创建一个类数组对象 var alo = {0:"a", 1:"b",2:"c", length:3}; // 转化 var arr = Array.prototype.slice.call(alo); console.log( Array.isArray(alo) // false ) console.log( Array.isArray(arr) // true ) console.log(alo); // { '0': 'a', '1': 'b', '2': 'c', length: 3 } console.log(arr); // [ 'a', 'b', 'c' ]
4、利用concat
var args = Array.prototype.concat.apply([],数组);