1. ホーム
  2. javascript

[解決済み] 配列を値でコピーする

2022-03-18 16:45:35

質問

JavaScriptで配列を別の配列にコピーする場合。

var arr1 = ['a','b','c'];
var arr2 = arr1;
arr2.push('d');  //Now, arr1 = ['a','b','c','d']

ということに気づきました。 arr2 と同じ配列を参照します。 arr1 というより、新しい独立した配列です。配列をコピーして、独立した2つの配列を得るにはどうすればよいですか?

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

これを使ってください。

let oldArray = [1, 2, 3, 4, 5];

let newArray = oldArray.slice();

console.log({newArray});

基本的には slice() オペレーションは、配列のクローンを作成し、新しい配列への参照を返します。

また、そのことに注意してください。

参照、文字列、数値の場合(実際のオブジェクトではありません)。 slice() は、オブジェクトの参照を新しい配列にコピーします。 元の配列と新しい配列の両方が同じオブジェクトを参照しています。参照されているオブジェクトが変更された場合、その変更は新しい配列と元の配列の両方に表示されます。

文字列や数値などのプリミティブは不変であるため、文字列や数値の変更は不可能である。