什么是伪数组,如何将伪数组转为真数组
程序员文章站
2022-06-10 08:31:31
...
什么是伪数组,如何将伪数组转为真数组
- 什么是伪数组?
常见的伪数组有:
a.具有length属性;
例如:
var obj={0:“lily”,1:21,2:“abc”} //不是伪数组,没有length属性
var obj={0:“lily”,1:21,2:“abc”,length:3} //是伪数组,有length属性
b. 通过arguments对象获取的;
c. 通过调取getElementsByTagName, getElementsByClassName,document.childNodes以及自定义对象等,他们返回的对象都属于伪数组,也称为类数组。
注意:如果length的属性值为0,那么这个对象有没有元素都无所谓;若是length的值不为0,则这个对象中一定会有下标为length-1的属性值。
例如:
var obj={length:0};
var obj={legth:2,1:‘a’}//可以认为下标为0存的值为undefined; - 如何将伪数组转换为真数组?(3种方法)
a. 通过es6的Array.form()
var obj={
0:"lily",
1:21,
2:"abc",
length:3
}
var arr= Array.from(obj);
console.log(arr) // ["lily", 21, "abc"]
b.通过数组的slice方法
var obj={
0:"lily",
1:21,
2:"abc",
length:3
}
var arr= Array.prototype.slice.call(obj);
console.log(arr) // ["lily", 21, "abc"]
c.通过call
var arr=[];
var obj={
0:"lily",
1:21,
2:"abc",
length:3
}
var arr= arr.slice.call(obj);
console.log(arr) // ["lily", 21, "abc"]
上一篇: List集合去重的五种方法
下一篇: List去重五种方法