(section03-01 Arrayクラスの配列から抜粋)
配列の一部を取り出すメソッドにはslice()と
splice()があります。どちらも取り出した値の配列を作ります。slice()では元の配列は変化しないのに対し、
splice()の場合は抜き取った値が元の配列から取り除かれるという違いがあります。
次の例はslice()を使って新しい配列を作り出しています。取り出す位置はslice(startIndex,endIndex)のように指定します。このとき、slice(1,4)ならば1〜3番目を取り出し、4番目を含まないので注意が必要です。
次の例では配列allListから1〜3番目の値を複製して新しい配列selectListを作成します。配列のインデックスは0からカウントするので、1〜3番目は"b"、"c"、"d"になります。slice()で値を取り出しても元の配列allListの中身はそのままで変化していません。
[:script:]配列の1〜3番目の値を取り出す
var allList:Array=["a","b","c","d","e","f"];
var selectList:Array=allList.slice(1,4);
//取り出した配列
trace(selectList);//出力:b,c,d
//元の配列は変化しない
trace(allList);//出力:a,b,c,d,e,f
slice()は2番目の引数を省略できます。slice(3)のように引数を1つだけ指定した場合は3番目(並びでは4個目)から最後までの値を指定したことになります。
[:script:]配列の3番目から最後までの値を取り出す
var allList:Array=["a","b","c","d","e","f"];
var selectList:Array=allList.slice(3);
trace(selectList);//出力:d,e,f
trace(allList);//出力:a,b,c,d,e,f
引数をマイナスにすると末尾から個数を数えて取り出します。次の例は末尾から4個の値を取り出した配列を作ります。インデックス番号と違って1から数えるので注意してください。
[:script:]配列の後ろから4個の値を取り出す
var allList:Array=["a","b","c","d","e","f"];
var selectList:Array=allList.slice(-4);
trace(selectList);//出力:c,d,e,f
trace(allList);//出力:a,b,c,d,e,f
*初版ではsplice()の項に間違いがあります。
訂正原稿を参照してください。