彩音 - Adobe AIR - 研究室:XION -Adobe AIR-laboratory
配列の一部を切り出す slice(), splice()

配列の一部を切り出す関数には slice() と splice() がある。slice() は元の配列の値を複製し、新しい配列を作る。splice() は元の配列から値を取って新しい配列を作る。splice() の場合は元の配列が変化する。

slice() には slice(startIndex, endIndex) のように、元の配列から取り出す先頭の位置と最後の位置を引数で指定する。slice(2, 5) だと 2, 3, 4 のように5番目を含まないので注意すること。以下の例は配列 allMembers から 2, 3, 4 番目の値を複製し、新しい配列 selectMembers を作成する。元の配列 allMembers の中身はそのままで変化しない。配列は0番目からカウントするので、2, 3, 4 番目は "c", "d", "e" になる。


var allMembers;Array = new Array("a", "b", "c", "d", "e", "f");
var selectMembers:Array = allMemvers.slice(2, 5);
trace (allMemvers);
// 出力: a, b, c, d, e, f
trace (selectMembers);
// 出力: c, d, e

2番目の引数を省略して slice(2) のように引数を1つだけ指定すると三番目から最後までの値を指定したことになる。


var allMembers:Array = new Array("a", "b", "c", "d", "e", "f");
var selectMembers:Array = allMembers.slice(2);
trace (selectMemvers);
// 出力: c, d, e, f

引数をマイナスにすると末尾から数えたことになる。末尾から数える場合は0からでなく個数でカウントする。


var allMembers:Array = new Array("a", "b", "c", "d", "e", "f");
var selectMembers:Array = allMembers.slice(-3);
trace (selectMembers);
// 出力: d, e, f

splice() は元の配列から値を抜き取って新しい配列を作る。抜き取る際に値を複製しないので元の配列が変化する。


var stockList:Array = new Array("a", "b", "c", "d", "e", "f");
var pickUpList:Array = stockList.splice(2, 5);
trace (stockList);
// 出力: a, b
trace (pickUpList);
// 出力: c, d, e, f

索引