• 将伪数组转为真正的数组


    将伪数组转为真正的数组

    2018.08.14 21:06:53字数 90阅读 2321

    伪数组转为真数组

    对DOM元素进行map、forEach操作时候需要进行遍历,伪数组遍历会报错:'elem.map is not a function',为了避免这个问题,需要进行转换。

    (1) ES5 转为真数组

    Array.prototype.slice.call(元素对象)

    let elem1 = Array.prototype.slice.call(elem)
    
    (2) ES6 转为真数组

    Array.from(元素对象)

    let elem2 = Array.from(elem)
    
    (3) 例子
    <ul>
        <li class="a" ></li>
        <li class="a" ></li>
        <li class="a" ></li>
        <li class="a" ></li>
        <li class="a" ></li>
    </ul>
    
    <script>
    
    /* 获取li元素*/
    let elem = document.getElementsByClassName('a')
    
    /* 这样写是错误的,因为是伪数组*/
    elem.map((item,index,elem) => {
        console.log(item +'---'+index + '----'+elem) 
        /*elem.map is not a function*/
    })
    
    // (1)es6 转为真数组
    let elem1 = Array.from(elem)
    // (2)es5 转为真数组
    let elem2 = Array.prototype.slice.call(elem)
    
    console.log(elem)
    console.log(typeof elem)
    console.log(elem1)
    console.log(elem2)
    
    elem1.map((item,index,elem1) => {
        console.log(item +'---'+index + '----'+elem1)
    })
    elem2.map((item,index,elem2) => {
        console.log(item +'---'+index + '----'+elem2)
    })
    
    </script>
  • 相关阅读:
    11->centos6 安装oracle
    centos7安装rlwrap
    ajax
    java获取时间戳
    idea主要设置大纲图
    ppycharm设置解释器版本号码
    JTA 深度历险
    学会数据库读写分离、分表分库——用Mycat,这一篇就够了!
    分库分表的几种常见玩法及如何解决跨库查询等问题
    深入浅出SOA
  • 原文地址:https://www.cnblogs.com/li923/p/11724038.html
Copyright © 2020-2023  润新知