JS之类数组
类数组
什么是类数组?
定义:
- 拥有length属性,其属性(索引)为非负整数
- 不具有数组的所具有的方法
类数组与非类数组的比较
类数组:
1 var obj = { 2 0 : "a", 3 1 : "第二", 4 4 : "1234", 5 length : 3 6 }; 7 console.log(obj);
非类数组:
1 var obj = { 2 0 : "a", 3 1 : "第二", 4 4 : "1234" 5 };
没有length属性,所以就不是类数组。
javascript中常见的类数组有arguments对象和DOM方法的返回结果。
比如 document.getElementsByTagName()。
类数组对象转化为数组:
有时候使用类数组最好的方式就是转化为数组
可以通过splice方法区转换。
1 var obj = { 2 0 : "a", 3 1 : "第二", 4 4 : "1234", 5 length : 4, 6 splice : Array.prototype.splice, 7 }
这时就可以使用数组的方法,
例如
var obj = { 0 : "a", 1 : "第二", 4 : "1234", length : 4, push : Array.prototype.push, splice : Array.prototype.splice } obj.push("这是新加的");
要注意的是,如果调用push方法,会动态的去改变length的长度,并且会在已有长度上进行属性的扩展。