変更を加えるために、変数の一時コピーを作成する必要があります。これが私が意味することです:
var x = ["a", "b", "c"];
var y = x;
y[1] = "2"
//x: ["a", "b", "c"];
//y: ["a", 2, "c"];
組み込みのデータ構造ではなく、自分で定義したオブジェクトを使用していることは指摘しておく価値があります。
変更を加えるために、変数の一時コピーを作成する必要があります。これが私が意味することです:
var x = ["a", "b", "c"];
var y = x;
y[1] = "2"
//x: ["a", "b", "c"];
//y: ["a", 2, "c"];
組み込みのデータ構造ではなく、自分で定義したオブジェクトを使用していることは指摘しておく価値があります。
JavaScript でプリミティブ型の配列を「複製」するための標準的な方法 (要件に基づく) を以下に示します。
var x = ["a", "b", "c"];
var y = x.slice(0);
y[1] = "2";
配列に複合型 (オブジェクト) が含まれている場合は、元の参照が保持されることに注意してください。つまり、オブジェクトの配列に対して「ディープ」コピーを実行しません。
これを試して
var x = ["a", "b", "c"];
var y = JSON.parse(JSON.stringify(x));
//y = ["a", "b", "c"];
その後、新しいオブジェクトを好きなように操作できます。