配列の一部を取り出す slice()

|
(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()の項に間違いがあります。訂正原稿を参照してください。
まったく新しいAS3の世界!
694a.jpg
Adobe Flash CS4
詳細!ActionScript3.0入門ノート[完全改訂版](CD-ROM付)

楽しいActionScript。
新たなる1歩へと踏み出しましょう。
■内容は?→ 目次を見る
■評判は?→ 書評を読む
この本を書いたわけ

このブログ記事について

このページは、oshigeが2009年9月 6日 10:16に書いたブログ記事です。

ひとつ前のブログ記事は「配列の先頭に値を追加する、先頭から値を抜き取る unshift()、shift()」です。

次のブログ記事は「正誤表20090908」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

あわせて読みたいブログパーツ