zoukankan      html  css  js  c++  java
  • 类数组转化为真正的数组

    引言

    开发过程中,有很多时候获取到的是类似数组的对象。比如元素的集合(elementcollection,nodeList,以及今天开发时发现classList也是类数组)。有时我们需要类数组去调用数组的方法,怎么办?

    办法一

    遍历类数组,将类数组里面的元素依次放入一个新的数组

    1. 类数组本身虽然不是数组,但是有interator接口,所以可遍历。(interator指可遍历、可迭代)
    let foo = {
        0 : 1,
        1 : 2,
        2 : 3,
        length : 3
    }
    
    let arr = [];
    
    for(let item of foo){
        arr.push(item)
    }
    

    办法二

    使用 es6 中 Array.from()方法转换

    let foo = {
        0 : 1,
        1 : 2,
        2 : 3,
        length : 3
    }
    let arr = Array.from(foo)
    

    办法三

    使用 apply 和 call
    apply方法的第二个参数是数组,也可以是类数组,在调用的时候会将第二个参数依次展开。

    let foo = {
        0 : 1,
        1 : 2,
        2 : 3,
        length : 3
    }
    // apply
    let arr = [].concat.apply([],foo)
    // call
    let arr = Array.prototype.slice.call(foo)
    console.log(arr)
    

    办法四 ES6+

    扩展运算符

    
    // 字符串也是一个类数组
    let arr = [...'hello']
    // HTMLcontrion 伪数组集合  NodeList 伪数组集合
    let arr1 = [...HTMLcontrion]
    
  • 相关阅读:
    解决CollectionView TableView reloadData或者reloadSections时的刷新的闪烁问题
    HTTP请求头
    Fastlane 使用笔记
    python-函数式编程
    python-高级特性
    python基础使用
    python基础-函数02
    python基础-函数01
    python基础
    Linux基础
  • 原文地址:https://www.cnblogs.com/ifon/p/11409871.html
Copyright © 2011-2022 走看看