繁体   English   中英

使用传播运算符将对象推入数组吗?

[英]Push an object into the array using spread operator?

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

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调用后被推入数组

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

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

如果希望所有数组项都与对象合并,则可以尝试使用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); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM