如何将第一个对象放入java脚本中的其他对象并创建单个对象

时间:2017-09-26 11:15:55

标签: javascript arrays

我有两个输入对象。

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'
        }
    }
};

3 个答案:

答案 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