问题:
如何更改对象的子项?完全按照下面描述的输出。
采样代码
var obj= {test: [{a: 2}, {b: 3}]};
var newChildren = [{a: 3}, {b: 5}, {c: 1}];
//I read the obj key value by the following:
var objKey = Object.entries(obj)[0][0]
//Here i want to have some code to get the following result
//My momentary regarding to @webdeb
var output = Object.assign({}, {objKey: newChildren})
actual output: // {objKey: [{a: 3}, {b: 5}, {c: 1}]}
wanted output: // {test: [{a: 3}, {b: 5}, {c: 1}]}
我没有其他选择来获取其他格式的代码,因此我所描述的方式需要“输入”。我需要将objKey
设置为变量,因为我的代码中有多个键,我必须为多个子项设置。 (做一些过滤器的东西)
感谢您的帮助
BR 乔纳森
答案 0 :(得分:1)
首先,不要将Object
用作变量名称..
好的,我们可以说对象现在是obj
不修改obj
var newObj = Object.assign({}, obj, {test: newChildren})
或者只是,(修改obj
)
obj.test = newChildren
这是你在找什么?
答案 1 :(得分:1)
以下解决方案给了我想要的确切结果:
obj[objKey] = newChildren;
console.log(obj) // {test: [{a: 3}, {b: 5}, {c: 1}]}
我对这个问题采取了这个解决方案:
How can I add a key/value pair to a JavaScript object?
对我来说重要的是将object-key
作为变量。所描述的解决方案为我提供了向more
添加值的选项,而不仅仅是一个static
键。