JS类数组对象
一、特性
把一个具备数值类型的length属性及其值为非负整数的对象看做是一种类数组的对象
eg:
var o = {} var i = 0; for (var i=0;i<5;i++){ o[i] = i; } o.length=i;//定义length属性 //使用类数组方式循环遍历 for(var j=0;j<o.length;j++){ console.log(o[j]) }
二、判断类数组对象方法
function isArraylike(o){ if(o && typeof o =="object" && isFinite(o.length) && o.length>0 && o.length ==Math.floor(o.length)&& o.length<4294967296) return true; else return false; }
--4294967296 == 2^32
三、类数组对象转换成数组
var a = {length:2,0:1,1:2}; isArraylike({length:2,a:1,b:2})//truevar ac = Array.prototype.slice.call(a,0);
ac.length//2
ac.map(function(c){
return ++c;
})
--可使用Array对象中能返回数组的方式将类数组对象转换成数组,如slice,splice,map等
四、应用
1)遍历dom元素
var tags = document.getElementsByTagName("div"); isArraylike(tags);//truevar tagarr = Array.prototype.slice.call(tags)
tagarr.length
标题:JS类数组对象
作者:hugh0524
地址:https://blog.uproject.cn/articles/2016/06/23/1466650416595.html
0 0