伪数组

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)
上一篇下一篇

猜你喜欢

热点阅读