伪数组

作者: jasmine_6aa1 | 来源:发表于2020-04-20 21:52 被阅读0次

    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)
    

    相关文章

      网友评论

          本文标题:伪数组

          本文链接:https://www.haomeiwen.com/subject/qhemihtx.html