我有一个数组的对象是一个输入.让我们称之为内容.
当尝试深入复制它时,它仍然有一个前一个数组的引用.
我需要复制该输入数组,并更改重复部分的一个属性.
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);
- }
我知道这不是最佳的.我想知道是否有更好的解决方案.