我尝试通过一个键将值设置到嵌套数组中。
我的物件看起来像
var Obj = {
key1: {
key2: value,
}
}
我尝试通过
key1.key2
设置key1const name = `key1.key2`
Obj[name] = value
我知道我需要像
Obj['key1']['key2']
那样做,但是我只能得到一个看起来像string
的key1.key2
最佳答案
如果您不介意使用库,则Ramda和lodash提供帮助程序功能,使这种操作非常简单
使用Ramda(此特定操作比lodash稍微冗长,但我更喜欢Ramda而不是lodash):
const Obj = {
key1: {
key2: 1,
}
}
const name = `key1.key2`
console.log(
R.assocPath(name.split('.'), 2, Obj)
)
// --> { key1: { key2: 2 } }
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.min.js"></script>
使用lodash:
const Obj = {
key1: {
key2: 1,
}
}
const name = `key1.key2`
console.log(
_.set(Obj, name, 2)
)
// --> { key1: { key2: 2 } }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
关于javascript - 在嵌套对象中设置值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59439584/