文字列、数値、ブール値、null、undefinedなどのデータをプリミティブデータといいます。Action Scriptでは、複数のデータをひとまとめにしたコンポジットデータをいくつかサポートしています。
配列とは、順番のあるリストの形をしたコンポジットデータです。また、配列は配列オブジェクトです。
配列は以下の時に生成されます。
配列リテラルはコンマ「.」で区切った複数のデータをブランケット「[ ]」で囲んだ形をしています。
[1, 2, 3]// 1,2,3の数値からなる配列
["りんご", "みかん", 3, 5+1]// 文字列と数値と式からなる配列
[1, , , 2]// 隙間のある配列
[1, 2, [3, 4]]// ネスト(入れ子)した配列。二次元配列ともいう
[]// 空の配列
配列オブジェクとのArray()コンストラクタを使っても同じものが作れます。
new Array(1, 2, 3)// 1,2,3の数値からなる配列
new Array("りんご", "みかん", 3, 5+1)// 文字列と数値と式からなる配列
new Array(1, , , 2)// 隙間のある配列
new Array(1, 2, new Array(3, 4))// ネスト(入れ子)した配列。二次元配列ともいう
new Array()// 空の配列
引数に数値を一つ指定した場合には、指定した数値の長さの配列が作成されます。
new Array(10) // 長さが10の空の配列(インデックスは0から9まで)
インデックスは0から始まるため、配列の長さは最後のインデックスよりも1大きな数になります。
作成した配列から配列エレメントを参照するには、配列アクセス演算子「 [ ] 」を使用します。
配列名[式]
var names=["マイキー", "エミリー", "ローラ"];// 配列リテラルで変数に保管
trace(names[1]);// エミリーと表示
trace(names[Math.floor(Math.random()*3)]);// ランダムで配列エレメントを表示
var names=["マイキー", "エミリー", "ローラ"];// 配列リテラルで変数に保管
names[1]="ブラウン";// インデックス1の配列エレメントに代入
trace(names[1]);// ブラウンと表示
length | 配列の長さ |
---|
配列の長さは、配列オブジェクトのlengthプロパティで取得・変更できます。
var names=["マイキー", "エミリー", "ローラ"];// 配列リテラルで変数に保管
trace(names.length);// 3と表示
var list=new Array(10); trace(list.length);// 10と表示 // 配列全てを操作
for (var i=0; i<names.length; i++) {// 配列の長さだけ繰り返し
trace(i+": "+names[i]);// i番目の配列エレメントを表示
}
var names=["マイキー", "エミリー", "ローラ"];// 配列リテラルで変数に保管
names.length=10;// 配列の長さが10になるように空の配列エレメントを追加
names.length=2;// 配列の長さが2になるように配列を切り詰める
trace(names);// マイキー,エミリー と表示
push() | 末尾に配列エレメントを追加 |
---|---|
unshift() | 先頭に配列エレメントを追加 |
pop() | 末尾の配列エレメントを削除 |
shift() | 先頭の配列エレメントを削除 |
splice() | 任意の場所の配列エレメントの除去・追加 |
concat() | 配列を結合して新たな配列を作成 |
slice() | 配列の一部を新たな配列として作成 |
reverse() | 配列を逆順にする |
sort() | 配列を並べ替える「 |
sortOn() | 配列を並べ替える |
join() | 指定した区切り文字で配列から文字列を作成 |
toString() | 区切り文字「,」で配列から文字列を作成 |
delete() | 配列エレメントにundefinedを入れる |
push()メソッドは配列の末尾に配列エレメントを追加して、配列の長さを返します。
配列名.push(引数1, 引数2, ... 引数n)
var names=["マイキー", "エミリー", "ローラ"];// 配列リテラルで変数に保管
trace(names.push("トニー", "チャールズ"));// 5と表示
trace(names);// マイキー,エミリー,ローラ,トニー,チャールズ と表示
unshift()メソッドは配列の先頭に配列エレメントを追加して、配列の長さを返します。
配列名.unshift(引数1, 引数2, ... 引数n)
var names=["マイキー", "エミリー", "ローラ"];// 配列リテラルで変数に保管
trace(names.unshift("トニー", "チャールズ"));// 5と表示
trace(names);// トニー,チャールズ,マイキー,エミリー,ローラ と表示
pop()メソッドは配列の末尾にある配列エレメントを削除して、削除した配列エレメントを返します。
配列名.pop()
var names=["マイキー", "エミリー", "ローラ"];// 配列リテラルで変数に保管
trace(names.pop());// ローラと表示
trace(names);// マイキー,エミリー と表示
shift()メソッドは配列の末尾にある配列エレメントを削除して、削除した配列エレメントを返します。
配列名.shift()
var names=["マイキー", "エミリー", "ローラ"];// 配列リテラルで変数に保管
trace(names.shift());// マイキーと表示
trace(names);// エミリー,ローラ と表示
reverse()メソッドは、配列のエレメントの順番を逆にします。
配列名.reverse()
names=["マイキー", "エミリー", "ローラ"];// 配列リテラルで変数に保管
names.reverse();// 逆順に
trace(names);// ローラ,エミリー,マイキーと表示
sort()メソッド関数は配列を辞書順(ただし大文字は小文字より前)に並び替えます。比較方法を指定して任意の方法で並び替える方法もありますが、ここでは省略します。
配列名.sort()
names=["マイキー", "エミリー", "ローラ"];// 配列リテラルで変数に保管
names.sort();// 並び替え
trace(names);// エミリー,マイキー,ローラと表示
Programming Laboratory (Shio seminar)