伪数组
2020-04-20 本文已影响0人
jasmine_6aa1
1,什么是伪数组
伪数组:就是一个对象,他具有以下几个特点
- 必须是一个对象
- 不具有数组的方法
- 这个对象必须有 length 属性
- 如果这个对象的 length 不为 0,那么必须要有按照下标存储的数据
2,常见的一些伪数组有哪些?
1,function里的arguments
2,通过getElementByTagName()
,document.childNodes()
,getElementByName()
,document.children()
等方式获取的NodeList
集合的对象都属于伪数组
3,伪数组判断
注:不具有数组的方法
let arrLike ={
'0':'a',
'1':'b',
'2':'c',
'3':'d',
length:5
}
arrLike instanceof Array;// false
Array.isArray(arrLike) ;// false
4,将伪数组转为标准数组的方法
// 方法一
var arr = Array.prototype.slice.call(arrLike);// ["a", "b", "c", "d", empty]
// 方法二
注:用这个方法,伪数组中的length就是标准数组的length,没有的,用undefined填充
let arr = Array.from(arrLike);// { 0: "a",1: "b",2: "c",3: "d",4: undefined }
// 方法三 扩展运算符
let divs = document.querySelectorAll('div')
let divArr = [...divs] // 此时转为真正的数组了
补充:Array.from(arrLike,function( ) { })
parms:
arrLike:伪数组
function:对于每一个伪数组中的item进行操作的函数
Array.from(arrLike,item=>item*2)