gpt4 book ai didi

javascript - 更改深层嵌套对象值

转载 作者:太空宇宙 更新时间:2023-11-04 02:56:23 25 4
gpt4 key购买 nike

这似乎是显而易见的,但我无法弄清楚如何缩短代码中多个位置的深度嵌套对象值的更改,而无需每次重新键入该值的键路径:

> obj = { 'key1': { 'key2': { 'key3': { 'key4': { 'key5': 'value' }}}}}
> obj.key1.key2.key3.key4.key5
'value'
<小时/>
> obj.key1.key2.key3.key4.key5 = 'changeme'
> obj.key1.key2.key3.key4.key5
'changeme'

> obj.key1.key2.key3.key4.key5 = 'changeme2'
> obj.key1.key2.key3.key4.key5
'changeme2'

最佳答案

您可以使用一些递归来迭代对象中的每个键并更新找到匹配键的位置。

const obj = { 'key1': { 'key2': { 'key3': { 'key4': { 'key5': 'value' }}}, 'key5': 'test'}}

const mutateObjectProperty = (prop, value, obj) =>
obj.constructor === Object && Object.keys(obj).forEach(key => {
if (key === prop) obj[key] = value
mutateObjectProperty(prop, value, obj[key])
})

mutateObjectProperty('key5', 'updated', obj)

console.log(obj)

关于javascript - 更改深层嵌套对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44381869/

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