Javascript 如何基于参数插值关键点并在对象中更新其值es6
我有 所以,如果我调用Javascript 如何基于参数插值关键点并在对象中更新其值es6,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我有 所以,如果我调用updateAbc('main','primary','updatedPrimary'),它应该返回更新的abc对象 const updateAbc = (node, key, value) => { return {updated abc} } 或者当调用updateAbc('buttons'、'text'、'updateText')时,它应该返回带有值的更新的abc对象 { main: { primary: 'updatedPrimary',
updateAbc('main','primary','updatedPrimary')
,它应该返回更新的abc对象
const updateAbc = (node, key, value) => {
return {updated abc}
}
或者当调用updateAbc('buttons'、'text'、'updateText')
时,它应该返回带有值的更新的abc对象
{
main: {
primary: 'updatedPrimary',
},
buttons: {
text: 'initialText',
},
}
它应该只为传递的值更新。如何在es6中实现这一点
{
main: {
primary: 'initialPrimary',
},
buttons: {
text: 'updatedText',
},
}
请注意,这不会按原样检查不存在的节点或键
你特别要求es6,所以这就是我的回答。其工作原理是传播abc
,然后动态使用节点
和键
提供更新值的路径
通过使用Object.assign
您可以通过执行以下操作获得相同的结果:
const abc = {
main: {
primary: 'initialPrimary',
},
buttons: {
text: 'initialText',
},
}
const updateAbc = (node, key, value) => {
return {
...abc,
[node]: {
[key]: value
}
}
}
但是如果给定一个不存在的
节点
名称这是否回答了您的问题?
const abc = {
main: {
primary: 'initialPrimary',
},
buttons: {
text: 'initialText',
},
}
const updateAbc = (node, key, value) => {
return {
...abc,
[node]: {
[key]: value
}
}
}
const updateAbc = (node, key, value) => {
var copyAbc = Object.assign({},abc)
copyAbc[node][key] = value
return copyAbc
}