我尝试通过键将值设置到嵌套数组中。
我的对象看起来像
var Obj = {
key1: {
key2: value,
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试通过key1.key2喜欢设置 key1
const name = `key1.key2`
Obj[name] = value
Run Code Online (Sandbox Code Playgroud)
我知道我需要这样做,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 } }
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.min.js"></script>Run Code Online (Sandbox Code Playgroud)
使用 lodash:
const Obj = {
key1: {
key2: 1,
}
}
const name = `key1.key2`
console.log(
_.set(Obj, name, 2)
)
// --> { key1: { key2: 2 } }Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |