问题:
通过ES5的方法怎么把类数组转成真正的数组?
答:
方法一:
遍历类数组,将类数组里面的元素依次放入一个新的数组
let foo={
0:1,
1:2,
2:3,
length:3
}
let arr=[];
for(let item of foo){
arr.push(item)
}
方法2:
使用apply和call,apply方法的第二个参数是数组,也可以是类数组,在调用的时候会将第二个参数依次展开。
let foo={
0:1,
1:2,
2:3,
length:3
}
//apply
let arr=[].concat.apply([],foo)
//call
let arr=Array.prototype.slice.call(foo)
console.log(arr)