我有一个数组的对象是一个输入.让我们称之为内容.
当尝试深入复制它时,它仍然有一个前一个数组的引用.
我需要复制该输入数组,并更改重复部分的一个属性.
ES6方式:
public duplicateArray() { arr = [...this.content] arr.map((x) => {x.status = DEFAULT}); return this.content.concat(arr); }
切片方式:
public duplicateArray() { arr = this.content.slice(0); arr.map((x) => {x.status = DEFAULT}); return this.content.concat(arr); }
在这两个数组中,数组中的所有对象都有状态:’Default’.
在Angular 2中深入复制数组的最佳方法是什么?
解决方法
我发现的唯一解决方案(几乎在发布问题后立即),是循环遍历数组并使用object.assign()
喜欢这个:
public duplicateArray() { let arr = []; this.content.forEach((x) => { arr.push(Object.assign({},x)); }) arr.map((x) => {x.status = DEFAULT}); return this.content.concat(arr); }
我知道这不是最佳的.我想知道是否有更好的解决方案.