js 类数组转化数组
一、常见类数组集合
(1)、arguements
function fn(){
var arr = [].slice.call(arguements,0);
}
(2)、HTMLCollection 元素集合 getElementsByTagName
var oList = document.getElementsByTagName("div");
var newArr = [].slice.call(oList);
(3)、NodeList 节点集合 getElementsByName
var nList = document.getElementsByName("divname");
var newArr1 = [].slice.call(nList);
//注:arguements 借助slice方法将类数组转化成数组在各个浏览器中都支持,但是借助slice方法将HTMLCollection(元素集合)或者NodeList(节点集合)类数组转化成数组会在IE6-IE8不兼容,会报错:this不是对象
通过以下方式处理兼容
var myUtils = {
// 实现将类数组转化为数组
listToArray:function(likeAry){
var arr = [ ];
try{
arr =Array.prototype.slice.call(likeAry);
}
catch(e){
for(var i = 0; i < likeAry.length; i++){
arr[arr.length] = likeAry[i];
}
}
return arr;
}
}