如何从切片进行完整复制?

时间:2018-08-03 17:46:18

标签: javascript

我是这样的数组

@observable data = [{a: 1}, {b: 1}, {c:1}];
 @observable sampleData = [];

我想切片

 this.sampleData = this.data .slice(0, 1);
 this.sampleData[0].a = 2; 

我希望“ 2”影响“ sampleData”中的记录而不是“ data”数组中的记录。

1 个答案:

答案 0 :(得分:-1)

因此,您基本上想为每个切片元素创建一个副本。您可以这样做:

this.sampleData = this.data.slice(0, 1).map(obj => ({ ...obj }))

或使用Object.assign

this.sampleData = this.data.slice(0, 1).map(obj => Object.assign({}, obj))

请注意,这只是一个副本,因此,如果您的对象具有嵌套结构,则必须执行 deep 副本。