主题
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 函数获得此行为