繁体   English   中英

将对象附加到数组中时使用扩展符号的正确方法?

[英]Correct way to use spread notation when appending an object into an array?

我想使用传播符号将对象push()入数组。

我已经完成了这两种方式,并且每种方式都有效,但是我想知道哪种方式正确,以及两者之间的区别是什么。

const arr = [{ id: 1, color: red }, { id: 2, color: blue }] 
const obj = { id: 3, color: green }

方法1:

[...arr, obj]

方法2:

[...arr, ...obj]

两种结果都给我

[{ id: 1, color: red }, { id: 2, color: blue }, { id: 3, color: green }]

您可能忘记了...obj周围的花括号。

两者之间的唯一区别是{ ...obj }创建obj对象的浅表副本,因此obj将不再等于新创建的数组中的obj

 const o = { foo: 'bar' }; const a = [{ bar: 'z' }, o]; const b = [{ bar: 'z' }, { ...o }]; console.log(o === a[1]); // true console.log(o === b[1]); // false 

关于您的问题,哪种方法是正确的-取决于您的情况,但是在大多数情况下,第一种方法就足够了。

暂无
暂无

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

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