1. ホーム
  2. javascript

[解決済み] Angular 2 + TypeScriptで配列をディープコピーする

2023-07-26 18:32:44

質問

入力となるオブジェクトの配列を持っています。これを content .

ディープコピーしようとすると、まだ前の配列への参照が残っています。

その入力配列を複製して、複製した部分のプロパティを一つ変更したいのですが、どうすればよいでしょうか?

長い間、私はさまざまな方法を試してきましたが、成功しませんでした。

ES6の方法。

public duplicateArray() {
  arr = [...this.content]
  arr.map((x) => {x.status = DEFAULT});
  return this.content.concat(arr);
}

slice の方法です。

public duplicateArray() {
  arr = this.content.slice(0);
  arr.map((x) => {x.status = DEFAULT});
  return this.content.concat(arr);
}

いずれも,配列内のすべてのオブジェクトに status: 'Default' .

Angular 2で配列をディープコピーするための最良のアプローチは何ですか?

どのように解決するのですか?

これを確認してください。

  let cloned = source.map(x => Object.assign({}, x));