(1)通过 call 调用数组的 slice 方法来实现转换(arrayLike);
数组的slice()方法可以从已有数组中返回一个新数组,它可以接受两个参数(start,end),第一个参数规定从何处开始选取,第二个参数表示从何处选取结束,如果不传参将返回原数组的一个副本,但该方法不会修改原数组,而是返回截取的新数组。
slice(start,end) 方法选择一个从开始到结束(不包括结束)的数组的一部分浅拷贝到一个新的数组对象,方法不会改变原数组。如果是对象则拷贝对象的引用到新数组,如果是基本类型则会拷贝这些值到新数组。
如果省略start则会从0开始。如果end被省略则会抽取到最后一个元素,如果end数值大于数组长度则会抽取到最后一个元素。
(2)通过 call 调用数组的 splice 方法来实现转换(arrayLike, 0);
它返回的是数组,使用call或者apply指向伪数组
splice(start,count,item)方法传入的参数不同,第一个参数代表开始选取的元素位置(必选值),第二个说明选取的元素数量(不传说明从第一个参数位置开始到数组的最后一个元素),第三个参数代表需要添加的元素(将会添加到第一个参数位置上)。
(3)通过 apply 调用数组的 concat 方法来实现转换([], arrayLike);
(4)es6新增了()方法,可以直接将类数组转换为真正的数组。
通过 方法来实现转换(arrayLike);
(5)循环遍历类数组对象,push到新创建的数组对象里
比如
var Li = ('li');
var arr = [];
for (var i = 0; i < ; i++) {
arr[] = Li[i];
return arr;
}
参考文章:
/shfshanyue/Daily-Question/issues/169
/LLLyyx/article/details/78141900
/weixin_42733155/article/details/81107716