类数组转换为数组

May 02 2016 前端

一、什么是类数组对象
1.特征
特征一:具有指向对象元素的数字索引下标以及 length 属性,告诉我们对象的元素个数
特征二:不具有诸如 push 、forEach 以及 indexOf 等数组对象具有的方法
2.常见的类数组对象

document.getElementsByClassName()
document.getElementsByTagName()
document.getElementsByName()
document.querySelectorAll()
document.stylesheets
parentNode.childNodes
arguments
var arrayObj = {
0 : 'Benjamin01'
1 : 'Benjmain02'
length : 2
};

3.转换为数组对象
slice()方法可以将一个类数组(Array-like)对象/集合转换成一个数组. 你只需要用数组原型上的slice方法call这个对象,即Array.prototype.slice.call(Array-like)。IE9以下并不支持slice()方法,因此需要对其做兼容处理。

function convertArray(nodeList){
var arr = []
if(Array.prototype.slice){
arr = [].slice.call(nodeList);
}else{
for(var i=0,len = nodeList.length;i < len;i++){
arr.push(nodeList[i]);
}
}
return arr;
}

JavaScript