[英]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.