var arr = ["One ", "Two","Three"];
var arrto = arr;
arrto[1] = "test";
document.writeln("配列の元の値: " arr "< br />");//エクスポート: 配列の元の値: One,test,Three
document.writeln("配列の新しい値: " arrto "
上記のような直接代入方法は、多くの場合、私たちが望む結果ではありません。arr の値が変更されないことです。
方法 1: js スライス関数
配列の場合、オブジェクトのスライス関数
は配列のセグメントを返します。 (配列のまま)
arrayObj.slice(start, [end])
パラメータ
arrayObj
必須。配列オブジェクト。
開始
必須。 arrayObj で指定された部分の開始要素は、0 から始まるインデックスです。
終了
オプション。 arrayObjで指定した部分の末尾の要素が0から始まるインデックスとなります。
説明
slice メソッドは、arrayObj の指定された部分を含む Array オブジェクトを返します。
slice メソッドは、end で指定された要素までコピーしますが、それは含まれません。 start が負の場合、それを length start として扱います。ここで、length は配列の長さです。 end が負の場合、長さは配列の長さである length end として扱われます。 end を省略した場合、slice メソッドは arrayObj の最後までコピーします。 start より end が出現した場合、要素は新しい配列にコピーされません。
例:
var arr = ["One","Two","Three"];
var arrtoo = arr.slice(0);
arrtoo[1] = "マップを設定";
document.writeln("配列の元の値: " arr "
");//エクスポート: 配列の元の値: One,Two,Three
document.writeln("配列の新しい値: " arrtoo "
");//エクスポート: 配列の新しい値: One,set Map,Three
方法 2: js concat メソッド
concat( ) メソッドは、2 つ以上の配列を連結するために使用されます。
このメソッドは既存の配列を変更せず、接続された配列のコピーのみを返します。
構文
arrayObject.concat(arrayX,arrayX,...,arrayX)
説明
新しい配列を返します。配列は、すべての arrayX パラメーターを arrayObject に追加することによって生成されます。 concat() の引数が配列の場合、配列ではなく配列内の要素が追加されます。
var arr = ["One","Two","Three"];
例:
var arrtooo = arr.concat();
arrtooo[1] = "set Map To";
document.writeln("配列の元の値: " arr "
");//エクスポート: 配列の元の値: One,Two,Three
document.writeln("配列の新しい値: " arrtooo "
");//エクスポート: 配列の新しい値: One,set Map To,Three