前端开发之javascript方法:对象转数组(es6)

js相关方法

  1. 包含es6、常用原生js方法等

对象转数组

  1. es6 对象遍历次序规则:
    • 首先遍历所有数值键,按数值升序排列
    • 其次遍历所有字符串键,按加入时间升序排列
    • 最后遍历所有Symbol键,按加入时间升序排列
  2. es6 对象遍历方法:
    • Object.keys()
    • for...in...
    • Object.getOwnPropertyNames()
    • Object.getOwnPropertySymbols()
    • Reflect.ownKeys()

Object.keys(obj)

  1. 遍历可枚举的属性,不包含继承,不包含Symbol
  2. 返回一个对象属性名称的数组
  const obj = {key1: 'oo', 1: 'oo', b: 'oo'}
  const arr = Object.keys(obj)
  /**
  控制台输出:
  [
    0: "1"
    1: "key1"
    2: "b"
    length: 3
    __proto__: Array(0)
  ]
  */

Object.values(obj)

  1. 遍历可枚举的属性,不包含继承,不包含Symbol
  2. 返回对象属性值的数组
const obj = {123: {k:4, l:'tt'}, 456: {k:42, l:'to'}, [Symbol('ss')]: 's1'}
const arr = Object.values(obj)
//控制台输出:
[
  0: {k: 4, l: "tt"}
  1: {k: 42, l: "to"}
  length: 2
  __proto__: Array(0)
]

Object.entries()

  1. 可枚举属性, 不包含继承, 不包含Symbol
  2. 返回对象[key, value]的数组
const obj = {a:'aa', s:2, m:3}
const arr = Object.entries(obj)
//控制台输出:
 [
    ["a", "aa"]
    ["s", 2]
    ["m", 3]
    length: 3
    __proto__: Array(0)
  ]

通过遍历Object.keys(),获取对象value数组

  1. Object.keys() 返回数组,遍历数组的方法均可以
const obj = {a:1, b:2, c:3}
const keys = Object.keys(obj) //[a,b,c]
const objVals = keys.map(key => obj[key]) //[1, 2, 3]

for...in...遍历对象获取value数组

  1. 遍历自身和继承的可枚举属性,不包含Symbol
const obj = {a:1, b:2, c:3}
let objVals = []
for(const oo in obj){
  objVals = [...objVals, obj[oo]]
}
上一篇
下一篇