• 总结几个对象转数组的方法


    目标效果:

    obj = { 0: 'a', 1: 'b', 2: 'c' }
    => 
    arr=['a','b','c']
    

    1、Array.from(object)

    let obj = { 0: 'a', 1: 'b', 2: 'c', length: 3 }
    let arr = Array.from(obj)
    console.log(arr)    // ['a', 'b', 'c']
    

    注:
    1️⃣ object中必须有length属性,返回的数组长度取决于length长度
    2️⃣ key 值必须是数值

    2、Object.values(object)

    返回数组的成员顺序:
    const obj = { 100: 'a', 2: 'b', 7: 'c' };
    Object.values(obj)
    // ["b", "c", "a"]
    

    image

    注:与第一种不同的是不需要length属性,返回一个对象所有可枚举属性值

    3、Object.keys(object)

    image

    注:返回一个对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致

    4、Object.entries(object)

    const obj = { foo: 'bar', baz: 42 }; 
    console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]
    

    image

    注:返回一个给定对象自身可枚举属性的键值对数组

    5、使用 for…in…构建函数

    function getObjectKeys(object) {
      let keys = []
      for(let property in object)
        keys.push(property)
        return keys
    }
    function getObjectValues(object) {
      let values = []
      for(let property in object)
        values.push(object[property])
        return values
    }
    
  • 相关阅读:
    02-SpringCloud 基础框架搭建
    01-SpringCloud 理论
    ES7 语法详解(async 与 await(重点))
    ES6 语法详解(Set和Map(重点))
    ES6 语法详解(对象扩展)
    ES6 语法详解(数组扩展)
    ES6 语法详解(数值扩展)
    ES6 语法详解(字符串扩展)
    ES6 语法详解(class关键字)
    ES6 语法详解(Generator函数)
  • 原文地址:https://www.cnblogs.com/tommymarc/p/16198851.html
Copyright © 2020-2023  润新知