Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在java脚本中将第一个对象放入另一个对象中,并生成单个对象_Javascript_Arrays - Fatal编程技术网

Javascript 如何在java脚本中将第一个对象放入另一个对象中,并生成单个对象

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

我有两个输入对象

1.

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
否之后,您缺少
结果?