彩音 - Adobe AIR - 研究室:XION -Adobe AIR-laboratory
配列を複製する slice()

配列は数値などと違いオブジェクトであるため、複製においては注意が必要である。


var alist:Array, blist:Array;
alist = new Array(1, 2, 3);
blist = alist;
trace (alist, blist);
// 出力: 1, 2, 3 1, 2, 3
alist.push("x");
blist.push("y");
trace (alist, blist);
// 出力: 1, 2, 3, x, y 1, 2, 3, x, y

配列を複製したい場合には slice() を利用する。slice() の引数を省略すると slice(0) を実行した場合と同じになり、配列の全ての値を複製した新しい配列を作ることができる。


var alist:Array, blist:Array;
alist = new Array(1, 2, 3);
blist = alist.slice();
trace (alist, blist);
// 出力: 1, 2, 3 1, 2, 3
alist.push("x");
blist.push("y");
trace(alist, blist);
// 出力: 1, 2, 3, x 1, 2, 3, y

索引