教程 radash tutorial

keys

深度获取对象的所有键

基本用法

给定一个对象,将其所有键及其子对象的键作为扁平字符串列表深度返回。

ts
import { keys } from 'radash'

const ra = {
  name: 'ra',
  power: 100,
  friend: {
    name: 'loki',
    power: 80
  },
  enemies: [
    {
      name: 'hathor',
      power: 12
    }
  ]
}

keys(ra)
// => [
//   'name',
//   'power',
//   'friend.name',
//   'friend.power',
//   'enemies.0.name',
//   'enemies.0.power'
// ]

这是一个你可能想与 get 一起使用的函数,get 可以根据字符串路径动态查找对象中的值。将两者结合使用,你可以做一些事情,比如展平一个深层对象。

ts
import { keys, get, objectify } from 'radash'

objectify(
  keys(ra),
  key => key,
  key => get(ra, key)
)
// => {
//   'name': 'ra'
//   'power': 100
//   'friend.name': 'loki'
//   'friend.power': 80
//   'enemies.0.name': 'hathor'
//   'enemies.0.power': 12
// }

从 v10.5.0+ 版本开始,你可以通过 crush 函数获得此行为