一、类数组与数组的区别
相同点:
都有 length 属性,都可以用下标访问每一个元素
不同点:
数组的类型是 Array ,类数组的类似是 Object
类数组不具备数组所具备的所有方法
类数组只能用 for 循环来遍历
例:
//下来这个就是一个类数组
obj = {
0:'1',
1:'2',
length:2
}
常见的类数组:
querySelectorAll,getElementByclassName,getElementsByTagName,arguments的集合
二、类数组转化为真的数组
1、使用拓展运算符(ES6)
let arr = [...obj];
2、Array.from(arr)(ES6)
let arr = Array.from(obj);
3、call、apply
//apply
let arr = [];
arr.push.apply(arr,obj);
let arr = [].slice.apply(obj)
//call
let arr = [].slice.call(obj);
let arr = Array.protype.slice.call(obj);
4、for 循环
let arr = [];
for(let item of obj){
arr.push(item);
}
以上方法推荐使用第一种拓展运算符,方便快捷。