我有一个包含三个输入字段的 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 对象的新手,所以我的术语可能不准确。但我希望我的问题很清楚。
答案 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);