本博客 hjy-xh,转载请申明出处
概括
- Array.prototype.slice.call()
- Array.from()
- 拓展运算符
Array.prototype.slice.call()
这种方法是借用了数组原型中的slice
方法,返回一个数组
slice()
返回一个新的数组对象,这一对象是一个由begin
和end
决定的原数组的浅拷贝(包括 begin,不包括end),且原始数组不会被改变,语法如下:
1 | arr.slice([begin[, end]]) |
这里看看slice()
方法的内部实现:
1 | Array.prototype.slice = function (start, end) { |
Array.from()
Array.from()
方法对一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例
1 | Array.from(arrayLike[, mapFn[, thisArg]]) |
- arrayLike
想要转换成数组的伪数组对象或可迭代对象 - mapFn 可选
如果指定了该参数,新数组中的每个元素会执行该回调函数。 - thisArg 可选
可选参数,执行回调函数 mapFn 时 this 对象。
拓展运算符
ES6中的扩展运算符…也能将某些数据结构转换成数组,这种数据结构必须有遍历器接口
1 | var args = [...arguments]; |
参考
MDN