对象数组 (JS) - 如何将第一个对象的内容复制到第二个对象中?

时间:2021-02-20 21:02:28

标签: javascript arrays object

我有一个包含三个输入字段的 HTML 表单,我需要对它们的值进行一些替换。

于是我写了如下代码(HTML部分省略):

var fields = [];
fields[0] = 'aaa bbb ccc';
fields[1] = 'aaa bbb ccc ddd';
fields[2] = 'eee';

const array = [
{
    'aaa': 'AAA',
    'bbb': 'BBB',
    'ccc': 'CCC'
},
{
    'ddd': 'DDD'
},
{
    'eee': 'EEE'
}
];

for (var i in array) {
    for (var k in array[i]) {
        fields[i] = fields[i].replace(RegExp(k, 'g'), array[i][k]);
        // I can't use replaceAll, because I need to support old browsers
    }
};

如您所见,在第二个字段中,我必须进行与第一个 (aaa bbb ccc) 相同的替换,再加上另一个 (ddd)。

如何将第一个对象的内容复制(扩展?)到第二个对象中?

换句话说,第二个对象的内容应该变成:

{
    'aaa': 'AAA',
    'bbb': 'BBB',
    'ccc': 'CCC',
    'ddd': 'DDD'
}

我是 JS 对象的新手,所以我的术语可能不准确。但我希望我的问题很清楚。

2 个答案:

答案 0 :(得分:2)

您可以使用 JavaScript 的 Spread syntax

const array = [{
    'aaa': 'AAA',
    'bbb': 'BBB',
    'ccc': 'CCC'
  },
  {
    'ddd': 'DDD'
  }
];

array[1] = {...array[0], ...array[1]}

console.log(array);

答案 1 :(得分:1)

试试这个:

const array = [
  { 'aaa': 'AAA', 'bbb': 'BBB', 'ccc': 'CCC' },
  { 'ddd': 'DDD' }
];

array[1] = { ...array[0], ...array[1] };

console.log(array);

相关问题