我有两个输入对象。
1
var inputData1 = {
'st1': {
'name': 'k1',
'rollNo': 'abc'
},
'st2': {
'name': 'k2',
'rollNo': 'pqr'
}
};
2
var inputData2 = {
'result': {
'data': 'sdg'
}
};
如何将第一个对象放入另一个对象。这是预期的输出:
输出对象
var output = {
'result': {
'data': 'sdg',
'st1': {
'name': 'k1',
'rollNo': 'abc'
},
'st2': {
'name': 'k2',
'rollNo': 'pqr'
}
}
};
答案 0 :(得分:1)
说这是你的第一个对象。
var inputData1 = {
'st1':{'name':'k1', 'rollNo':'abc'},
'st2': {'name':'k2', 'rollNo':'pqr'}
};
这是第二个对象
var inputData2 = {
'result': {
"data": "sdg"
}
};
你可以像这样使用
Object.assign(inputData2.result, inputData1);
console.log(inputData2);
答案 1 :(得分:0)
您想要做的是以下内容:
// returns a new independant copy from the inputs
function combine(inputData1, inputData2) {
if (!inputData1 instanceof Object || !inputData2 instanceof Object) {
return {};
}
let output = Object.assign({}, inputData2);
Object.assign(output.result, inputData1);
return output;
}
var output = combine(inputData1, inputData2);
答案 2 :(得分:0)
首先,您不能在对象中拥有重复的键。我建议对它们进行编号,然后你可以将st1,st2的内容分配给输出中的matchibng props:
A new entity was found through the relationship 'MyNamespace\DataObject\AbstractEndpoint#externalServer' that was not configured to cascade persist operations for entity: MyNamespace\DataObject\ExternalServer@000000006098ccff0000000068c23676. To solve this issue: Either explicitly call EntityManager#persist() on this unknown entity or configure cascade persist this association in the mapping for example @ManyToOne(..,cascade={"persist"}). If you cannot find out which entity causes the problem implement 'MyNamespace\DataObject\ExternalServer#__toString()' to get a clue.
所以现在你想用cascade
来组合你的对象:
var inputData1 = {
'st1':{'name':'k1', 'rollNo':'abc'},
'st2': {'name':'k2', 'rollNo':'pqr'}
};
var inputData2 = {
'result': {
"data": "sdg"
}
}
这将结合您的对象并为您提供您希望的内容。在ES6中添加了此方法。
让我知道这是否有效,并记得选择一个成功的答案:P