Javascript 如何在java脚本中将第一个对象放入另一个对象中,并生成单个对象
我有两个输入对象 1.Javascript 如何在java脚本中将第一个对象放入另一个对象中,并生成单个对象,javascript,arrays,Javascript,Arrays,我有两个输入对象 1. var inputData1 = { 'st1': { 'name': 'k1', 'rollNo': 'abc' }, 'st2': { 'name': 'k2', 'rollNo': 'pqr' } }; var inputData2 = { 'result': { 'data': 'sdg' } }; 2. var inputData1
var inputData1 = {
'st1': {
'name': 'k1',
'rollNo': 'abc'
},
'st2': {
'name': 'k2',
'rollNo': 'pqr'
}
};
var inputData2 = {
'result': {
'data': 'sdg'
}
};
2.
var inputData1 = {
'st1': {
'name': 'k1',
'rollNo': 'abc'
},
'st2': {
'name': 'k2',
'rollNo': 'pqr'
}
};
var inputData2 = {
'result': {
'data': 'sdg'
}
};
如何将第一个对象放入另一个对象。这是预期输出:
输出对象
var output = {
'result': {
'data': 'sdg',
'st1': {
'name': 'k1',
'rollNo': 'abc'
},
'st2': {
'name': 'k2',
'rollNo': 'pqr'
}
}
};
假设这是你的第一个目标
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);
您希望执行以下操作:
// 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);
首先,对象中不能有重复的关键点。我建议对它们进行编号,然后您只需将st1、st2的内容分配给output onject中的matchibng道具:
var inputData1 = {
'st1':{'name':'k1', 'rollNo':'abc'},
'st2': {'name':'k2', 'rollNo':'pqr'}
};
var inputData2 = {
'result': {
"data": "sdg"
}
}
因此,现在您需要使用Object.assign(obj,obj)
组合对象:
var output = Object.assign(inputData1.result, inputData2);
这将结合你的对象,给你你想要的,我希望。此方法已添加到ES6中
让我知道这是否有效,并记住选择一个获胜的答案:p
inputData1
不能有多个相同键的值st
@raghavkumar然后您可以对帮助您的答案进行投票,并选择其中一个作为接受答案!在输入数据1
否之后,您缺少结果?