gpt4 book ai didi

javascript - 在深层嵌套对象中按特定键查找所有值

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:51:36 24 4
gpt4 key购买 nike

如何在深层嵌套对象中通过特定键查找所有值?

例如,如果我有这样一个对象:

const myObj = {
id: 1,
children: [
{
id: 2,
children: [
{
id: 3
}
]
},
{
id: 4,
children: [
{
id: 5,
children: [
{
id: 6,
children: [
{
id: 7,
}
]
}
]
}
]
},
]
}

我如何通过 id 键获取此对象的所有嵌套中所有值的数组。

注意:children 是一个一致的名称,id 不会存在于 children 对象之外。

所以我想从 obj 生成一个这样的数组:

const idArray = [1, 2, 3, 4, 5, 6, 7]

最佳答案

这有点晚了,但对于其他人来说,这是一个干净的通用递归函数:

function findAllByKey(obj, keyToFind) {
return Object.entries(obj)
.reduce((acc, [key, value]) => (key === keyToFind)
? acc.concat(value)
: (typeof value === 'object')
? acc.concat(findAllByKey(value, keyToFind))
: acc
, [])
}

// USAGE
findAllByKey(myObj, 'id')

关于javascript - 在深层嵌套对象中按特定键查找所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54857222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com