1

我有一个这样的对象数组,

let array1 = [{id:1,name:'One'}]

每当我调用 api 时,对象数组都会像这样更新

let array2 = [{id:1,name:'One'}, {id:2, name:'Two'}]

第三次,会是这样,

let array3 = [{id:1,name:'One'}, {id:2, name:'Two'}, {id:3, name: 'Three'}]

现在我正在尝试为数组中的每个对象添加键值对作为

obj = {
    key: 'value'
}
[...array1, obj]

我得到一个像[{id:1,name:'One'},{key: 'value'}]

但预期的输出是[{id:1,name:'One',key: 'value'}]在每次 api 调用之后对象应该被推入一个数组

4

2 回答 2

3

如果要为数组中的每个对象添加键值对,除了使用扩展语法之外,还需要映射数组

let array1 = [{id:1,name:'One'}]
const obj = {
    key: 'value'
}
array1 = array1.map(val => ({...val, ...obj}))
console.log(array1);

于 2019-08-21T05:20:22.863 回答
2

如果您希望将所有数组项与对象合并,您可以尝试使用Array.prototype.map()Object.assign()喜欢以下方式:

let array3 = [{id:1,name:'One'}, {id:2, name:'Two'}, {id:3, name: 'Three'}];
let obj = {key: 'value'};
let res = array3.map(i => Object.assign(i, obj));
console.log(res);

于 2019-08-21T05:19:43.600 回答