パッケージ | トップレベル |
クラス | public dynamic class Array |
継承 | Array Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[0]
、2 番目のエレメントは [1]
(以下同様)になります。Array オブジェクトを作成するには、new Array()
コンストラクターを使用します。 Array()
は関数としても呼び出すことができます。 さらに、配列アクセス([]
)演算子を使用すると、配列の初期化または配列のエレメントへのアクセスを行うことができます。
配列エレメントには、数値、ストリング、オブジェクトを含む各種データ型、さらに他の配列も保存できます。インデックス付き配列を作成し、その各エレメントに異なるインデックス配列を割り当てれば、「多次元」配列を作成できます。このような配列は、テーブル内のデータの表現に使用できるので、多次元であると考えられます。
配列は「希薄な配列」です。つまり、インデックス 0 に 1 つのエレメント、インデックス 5 に別のエレメントが存在しても、この 2 つのエレメントの間のインデックス位置にはエレメントが存在しない場合があります。このような場合、1 から 4 までの位置のエレメントは未定義となります。これはエレメントが存在しないことを示しており、必ずしも値 undefined
を持つエレメントが存在するわけではありません。
配列では、値による代入ではなく、参照による代入が行われます。 ある配列変数に別の配列変数を代入すると、両方とも同じ配列を参照するようになります。
var oneArray:Array = new Array("a", "b", "c"); var twoArray:Array = oneArray; // Both array variables refer to the same array. twoArray[0] = "z"; trace(oneArray); // Output: z,b,c.
「結合配列」(「ハッシュ」とも呼ばれる)の作成には Array クラスを使用しないでください。結合配列は、数値エレメントではなく名前付きエレメントを含むデータ構造です。結合配列の作成には、Object クラスを使用してください。ActionScript では Array クラスを使用して結合配列を作成できますが、結合配列で Array クラスのメソッドやプロパティは使用できません。
Array クラスを拡張してメソッドをオーバーライドまたは追加することができます。ただし、サブクラスを dynamic
として指定する必要があります。そうしない場合、配列にデータを保管する機能が失われます。
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
length : uint
配列内のエレメント数を示す負でない整数です。 | Array |
メソッド | 定義元 | ||
---|---|---|---|
指定されたエレメントを持つ配列を作成することができます。 | Array | ||
指定された数のエレメントを持つ配列を作成することができます。 | Array | ||
パラメーターで指定されたエレメントを配列内のエレメントと連結して、新しい配列を作成します。 | Array | ||
指定された関数について false を返すアイテムに達するまで、配列内の各アイテムにテスト関数を実行します。 | Array | ||
配列内の各アイテムについてテスト関数を実行し、指定された関数について true を返すすべてのアイテムを含む新しい配列を作成します。 | Array | ||
配列内の各アイテムについて関数を実行します。 | Array | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
厳密な等価(===)を使用して配列内のアイテムを検索し、アイテムのインデックス位置を返します。 | Array | ||
単一のエレメントを配列に挿入します。 | Array | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
配列内のエレメントをストリングに変換し、指定されたセパレーターをエレメント間に挿入し、エレメントを連結して、その結果をストリングとして返します。 | Array | ||
配列内のアイテムを、最後のアイテムから先頭に向かって検索し、厳密な等価(===)を使用して、一致したアイテムのインデックス位置を返します。 | Array | ||
配列内の各アイテムについて関数を実行し、元の配列の各アイテムに対する関数の結果に対応するアイテムから成る新しい配列を作成します。 | Array | ||
配列の最後のエレメントを削除して、そのエレメントの値を返します。 | Array | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
エレメントを配列の最後に追加して、追加後の配列の長さを返します。 | Array | ||
単一のエレメントを配列から削除します。 | Array | ||
配列の並びを反転させます。 | Array | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
配列の最初のエレメントを削除して、そのエレメントを返します。 | Array | ||
元の配列から一連のエレメントを取り出して、新しい配列を返します。元の配列は変更されません。 | Array | ||
true を返すアイテムに達するまで、配列内の各アイテムにテスト関数を実行します。 | Array | ||
配列内のエレメントをソートします。 | Array | ||
配列内のフィールド(複数のフィールドも可能)に基づいて、配列内のエレメントをソートします。 | Array | ||
配列のエレメントを追加および削除します。 | Array | ||
指定された配列内のエレメントを表すストリングを返します。 | Array | ||
指定された配列内のエレメントを表すストリングを返します。 | Array | ||
エレメントを配列の先頭に追加して、配列の新しい長さを返します。 | Array | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
定数 | 定義元 | ||
---|---|---|---|
CASEINSENSITIVE : uint = 1 [静的]
Array クラスのソートメソッドに対して、大文字と小文字を区別しないソートを指定します。 | Array | ||
DESCENDING : uint = 2 [静的]
Array クラスのソートメソッドに対して、降順でのソートを指定します。 | Array | ||
NUMERIC : uint = 16 [静的]
Array クラスのソートメソッドに対して、文字ストリングではなく数値によるソートを指定します。 | Array | ||
RETURNINDEXEDARRAY : uint = 8 [静的]
ソート結果として、配列インデックスで構成される配列を返すことを指定します。 | Array | ||
UNIQUESORT : uint = 4 [静的]
Array クラスのソートメソッドに対して、一意性ソート要件を指定します。 | Array |
length | プロパティ |
length:uint
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
配列内のエレメント数を示す負でない整数です。このプロパティは、新しいエレメントが配列に追加されると自動更新されます。配列エレメントに値を割り当てるとき(my_array[index] = value
など)、index
が数値でかつ index+1
が length
プロパティよりも大きい場合、length
プロパティが index+1
に更新されます。
注意:length
プロパティに既存の長さよりも短い値を割り当てた場合、配列は切り詰められます。
実装
public function get length():uint
public function set length(value:uint):void
例 ( この例の使用方法 )
names
を作成し、ストリングエレメント Bill
を設定します。次に、push()
メソッドを使用して、別のストリングエレメント Kyle
を追加します。配列の長さは、length
プロパティで決められているエレメント 1 個(push()
を使う前)ですが、push()
を呼び出した後はエレメント 2 個になります。別のストリング Jeff
を追加すると、names
の長さは、エレメント 3 個になります。次に shift()
メソッドを 2 回呼び出し、Bill
と Kyle
を削除すると、最終的に配列の length
は 1 個になります。
var names:Array = new Array("Bill"); names.push("Kyle"); trace(names.length); // 2 names.push("Jeff"); trace(names.length); // 3 names.shift(); names.shift(); trace(names.length); // 1
Array | () | コンストラクター |
public function Array(... values)
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定されたエレメントを持つ配列を作成することができます。任意の型の値を指定することができます。配列内の最初のエレメントのインデックスまたは位置は、常に 0 です。
注意:このクラスは、2 つのコンストラクター項目を示しています。コンストラクターはさまざまなタイプの引数を受け入れるためです。コンストラクターの動作は、各項目で詳細を示すように、渡される引数の型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクターのオーバーロードをサポートしていません。
パラメーター... values — 複数の任意の値で構成されるカンマ区切りリストです。
注意:Array コンストラクターに数値パラメーターを 1 つだけ渡した場合、そのパラメーターは配列の |
例外
RangeError — 引数は、0 以上の整数ではない数値です。
|
関連する API エレメント
例 ( この例の使用方法 )
one
、two
、three
を設定し、その配列をストリングに変換します。
package { import flash.display.Sprite; public class Array_Array_3 extends Sprite { public function Array_Array_3() { var myArr:Array = new Array("one", "two", "three"); trace(myArr.length); // 3 trace(myArr); // one,two,three } } }
Array | () | コンストラクター |
public function Array(numElements:int = 0)
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定された数のエレメントを持つ配列を作成することができます。パラメーターを指定しない場合は、0 個のエレメントを持つ配列が作成されます。エレメント数を指定する場合は、numElements
個のエレメントを持つ配列が作成されます。
注意:このクラスは、2 つのコンストラクターメソッド項目を示しています。コンストラクターはさまざまなタイプの引数を受け入れるためです。コンストラクターの動作は、各項目で詳細を示すように、渡される引数の型と数によって異なります。ActionScript 3.0 はメソッドまたはコンストラクターのオーバーロードをサポートしていません。
パラメーターnumElements:int (default = 0 ) — 配列内のエレメント数を指定する整数です。
|
例外
RangeError — 引数は、0 以上の整数ではない数値です。
|
関連する API エレメント
例 ( この例の使用方法 )
myArr
を作成します。
package { import flash.display.Sprite; public class Array_Array extends Sprite { public function Array_Array() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } }
"one"
を設定し、ストリングエレメント "six"
を、push()
メソッドを使用して配列の最後に追加します。
package { import flash.display.Sprite; public class Array_Array_2 extends Sprite { public function Array_Array_2() { var myArr:Array = new Array(5); trace(myArr.length); // 5 myArr[0] = "one"; myArr.push("six"); trace(myArr); // one,,,,,six trace(myArr.length); // 6 } } }
concat | () | メソッド |
AS3 function concat(... args):Array
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
パラメーターで指定されたエレメントを配列内のエレメントと連結して、新しい配列を作成します。パラメーターで配列を指定すると、その配列のエレメントが連結されます。パラメーターを渡さない場合、新しい配列は元の配列の複製(浅い複製)になります。
パラメーター
... args — 新しい配列内で連結する任意のデータ型(数値、エレメント、ストリングなど)の値です。
|
Array — この配列のエレメントの後にパラメーターのエレメントが続く配列です。
|
例 ( この例の使用方法 )
numbers
配列。数値の1
、2
、および3
が含まれています。letters
配列。文字のa
、b
、およびc
が含まれています。numbersAndLetters
配列。concat()
メソッドを呼び出し、配列[1,2,3,a,b,c]
を作成します。lettersAndNumbers
配列。concat()
メソッドを呼び出し、配列[a,b,c,1,2,3]
を作成します。
var numbers:Array = new Array(1, 2, 3); var letters:Array = new Array("a", "b", "c"); var numbersAndLetters:Array = numbers.concat(letters); var lettersAndNumbers:Array = letters.concat(numbers); trace(numbers); // 1,2,3 trace(letters); // a,b,c trace(numbersAndLetters); // 1,2,3,a,b,c trace(lettersAndNumbers); // a,b,c,1,2,3
every | () | メソッド |
AS3 function every(callback:Function, thisObject:* = null):Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定された関数について false
を返すアイテムに達するまで、配列内の各アイテムにテスト関数を実行します。このメソッドを使用して、配列内のすべてのアイテムがある基準(値が特定の数値より小さいなど)を満たしているかどうかを判別できます。
このメソッドで、2 番目のパラメーター thisObject
は、null
でなければなりません(最初のパラメーター callback
がメソッド閉包である場合)。例えば、me
というムービークリップ内に、ある関数を作成するとします。
function myFunction(obj:Object):void { //your code here }
次に、every()
メソッドを、myArray
という配列に対して使用するとします。
myArray.every(myFunction, me);
myFunction
は、Timeline クラスのメンバーであり、me
でオーバーライドできないので、Flash ランタイムは例外をスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.every(myFunction, me);
パラメーター
callback:Function — 配列内の各アイテムについて実行する関数です。この関数には、単純な比較(item < 20 など)やより複雑な演算を含めることができます。また、この関数は、次のように、アイテムの値、アイテムのインデックス、および Array オブジェクトの 3 つの引数を使用して呼び出されます。
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — 関数の this として使用するオブジェクトです。
|
Boolean — ブール値です。true を返します(指定された関数について配列内のすべてのアイテムが true を返す場合)。それ以外の場合は false を返します。
|
関連する API エレメント
例 ( この例の使用方法 )
isNumeric
が最初の配列で true
、2 番目の配列で false
であることを示しています。
package { import flash.display.Sprite; public class Array_every extends Sprite { public function Array_every() { var arr1:Array = new Array(1, 2, 4); var res1:Boolean = arr1.every(isNumeric); trace("isNumeric:", res1); // true var arr2:Array = new Array(1, 2, "ham"); var res2:Boolean = arr2.every(isNumeric); trace("isNumeric:", res2); // false } private function isNumeric(element:*, index:int, arr:Array):Boolean { return (element is Number); } } }
filter | () | メソッド |
AS3 function filter(callback:Function, thisObject:* = null):Array
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
配列内の各アイテムについてテスト関数を実行し、指定された関数について true
を返すすべてのアイテムを含む新しい配列を作成します。false
を返すアイテムは、新しい配列に含められません。
このメソッドで、2 番目のパラメーター thisObject
は、null
でなければなりません(最初のパラメーター callback
がメソッド閉包である場合)。例えば、me
というムービークリップ内に、ある関数を作成するとします。
function myFunction(obj:Object):void { //your code here }
次に、filter()
メソッドを、myArray
という配列に対して使用するとします。
myArray.filter(myFunction, me);
myFunction
は、Timeline クラスのメンバーであり、me
でオーバーライドできないので、Flash ランタイムは例外をスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.filter(myFunction, me);
パラメーター
callback:Function — 配列内の各アイテムについて実行する関数です。この関数には、単純な比較(item < 20 など)やより複雑な演算を含めることができます。また、この関数は、次のように、アイテムの値、アイテムのインデックス、および Array オブジェクトの 3 つの引数を使用して呼び出されます。
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — 関数の this として使用するオブジェクトです。
|
Array — 元の配列内のアイテムで true を返したものをすべて含む新しい配列です。
|
関連する API エレメント
例 ( この例の使用方法 )
package { import flash.display.Sprite; public class Array_filter extends Sprite { public function Array_filter() { var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false}); employees.push({name:"Employee 2", manager:true}); employees.push({name:"Employee 3", manager:false}); trace("Employees:"); employees.forEach(traceEmployee); var managers:Array = employees.filter(isManager); trace("Managers:"); managers.forEach(traceEmployee); } private function isManager(element:*, index:int, arr:Array):Boolean { return (element.manager == true); } private function traceEmployee(element:*, index:int, arr:Array):void { trace("\t" + element.name + ((element.manager) ? " (manager)" : "")); } } }
forEach | () | メソッド |
AS3 function forEach(callback:Function, thisObject:* = null):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
配列内の各アイテムについて関数を実行します。
このメソッドで、2 番目のパラメーター thisObject
は、null
でなければなりません(最初のパラメーター callback
がメソッド閉包である場合)。例えば、me
というムービークリップ内に、ある関数を作成するとします。
function myFunction(obj:Object):void { //your code here }
次に、forEach()
メソッドを、myArray
という配列に対して使用するとします。
myArray.forEach(myFunction, me);
myFunction
は、Timeline クラスのメンバーであり、me
でオーバーライドできないので、Flash ランタイムは例外をスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.forEach(myFunction, me);
パラメーター
callback:Function — 配列内の各アイテムについて実行する関数です。この関数には、単純なコマンド(trace() ステートメントなど)やより複雑な演算を含めることができます。また、この関数は、次のように、アイテムの値、アイテムのインデックス、および Array オブジェクトの 3 つの引数を使用して呼び出されます。
function callback(item:*, index:int, array:Array):void; | |
thisObject:* (default = null ) — 関数の this として使用するオブジェクトです。
|
例 ( この例の使用方法 )
trace()
ステートメントを、traceEmployee()
関数で実行しています。
package { import flash.display.Sprite; public class Array_forEach extends Sprite { public function Array_forEach() { var employees:Array = new Array(); employees.push({name:"Employee 1", manager:false}); employees.push({name:"Employee 2", manager:true}); employees.push({name:"Employee 3", manager:false}); trace(employees); employees.forEach(traceEmployee); } private function traceEmployee(element:*, index:int, arr:Array):void { trace(element.name + " (" + element.manager + ")"); } } }
trace()
ステートメントを実行していますが、ここで使用する traceEmployee()
関数には若干の変更が加えられています。
package { import flash.display.Sprite; public class Array_forEach_2 extends Sprite { public function Array_forEach_2() { var employeeXML:XML = <employees> <employee name="Steven" manager="false" /> <employee name="Bruce" manager="true" /> <employee name="Rob" manager="false" /> </employees>; var employeesList:XMLList = employeeXML.employee; var employeesArray:Array = new Array(); for each (var tempXML:XML in employeesList) { employeesArray.push(tempXML); } employeesArray.sortOn("@name"); employeesArray.forEach(traceEmployee); } private function traceEmployee(element:*, index:Number, arr:Array):void { trace(element.@name + ((element.@manager == "true") ? " (manager)" : "")); } } }
indexOf | () | メソッド |
AS3 function indexOf(searchElement:*, fromIndex:int = 0):int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
厳密な等価(===
)を使用して配列内のアイテムを検索し、アイテムのインデックス位置を返します。
パラメーター
searchElement:* — 配列内で検索するアイテムです。
| |
fromIndex:int (default = 0 ) — アイテムの検索を開始する配列内の場所です。
|
int — 配列内のアイテムの 0 から始まるインデックス位置です。searchElement 引数が見つからなかった場合、戻り値は -1 です。
|
関連する API エレメント
例 ( この例の使用方法 )
package { import flash.display.Sprite; public class Array_indexOf extends Sprite { public function Array_indexOf() { var arr:Array = new Array(123,45,6789); arr.push("123-45-6789"); arr.push("987-65-4321"); var index:int = arr.indexOf("123"); trace(index); // -1 var index2:int = arr.indexOf(123); trace(index2); // 0 } } }
insertAt | () | メソッド |
join | () | メソッド |
AS3 function join(sep:*):String
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
配列内のエレメントをストリングに変換し、指定されたセパレーターをエレメント間に挿入し、エレメントを連結して、その結果をストリングとして返します。ネストされた配列は、join()
メソッドに渡されるセパレーターで区切るのではなく、常にカンマ(,)で区切ります。
パラメーター
sep:* (default = NaN ) — 返されたストリング内の配列エレメントを区切る文字またはストリングです。このパラメーターを省略すると、デフォルトのセパレーターとしてカンマが使用されます。
|
String — ストリングに変換された配列のエレメントで構成され、指定されたパラメーターで区切られているストリングです。
|
関連する API エレメント
例 ( この例の使用方法 )
myArr
を作成し、エレメント one
、two
、three
を設定します。次に one and two and three
を含むストリングを、join()
メソッドを使って作成します。
var myArr:Array = new Array("one", "two", "three"); var myStr:String = myArr.join(" and "); trace(myArr); // one,two,three trace(myStr); // one and two and three
specialChars
を作成し、エレメント (
、)
、-
と空白文字を設定します。次に (888) 867-5309
を含むストリングを作成します。次に、for
ループを使用して、specialChars
にリストされている各型の特殊文字を削除し、ストリング(myStr
)を作成します。このストリングは、電話番号の数字の桁(888675309
)のみが残されたものです。+
などの他の文字を specialChars
に追加することもできるので、このルーチンは国際電話番号の形式にも対応します。
var phoneString:String = "(888) 867-5309"; var specialChars:Array = new Array("(", ")", "-", " "); var myStr:String = phoneString; var ln:uint = specialChars.length; for(var i:uint; i < ln; i++) { myStr = myStr.split(specialChars[i]).join(""); } var phoneNumber:Number = new Number(myStr); trace(phoneString); // (888) 867-5309 trace(phoneNumber); // 8888675309
lastIndexOf | () | メソッド |
AS3 function lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
配列内のアイテムを、最後のアイテムから先頭に向かって検索し、厳密な等価(===
)を使用して、一致したアイテムのインデックス位置を返します。
パラメーター
searchElement:* — 配列内で検索するアイテムです。
| |
fromIndex:int (default = 0x7fffffff ) — アイテムの検索を開始する配列内の場所です。デフォルトは、インデックスに許可されている最大値です。fromIndex を指定しない場合、配列内の最後のアイテムから検索が開始されます。
|
int — 配列内のアイテムの 0 から始まるインデックス位置です。searchElement 引数が見つからなかった場合、戻り値は -1 です。
|
関連する API エレメント
例 ( この例の使用方法 )
package { import flash.display.Sprite; public class Array_lastIndexOf extends Sprite { public function Array_lastIndexOf() { var arr:Array = new Array(123,45,6789,123,984,323,123,32); var index:int = arr.indexOf(123); trace(index); // 0 var index2:int = arr.lastIndexOf(123); trace(index2); // 6 } } }
map | () | メソッド |
AS3 function map(callback:Function, thisObject:* = null):Array
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
配列内の各アイテムについて関数を実行し、元の配列の各アイテムに対する関数の結果に対応するアイテムから成る新しい配列を作成します。
このメソッドで、2 番目のパラメーター thisObject
は、null
でなければなりません(最初のパラメーター callback
がメソッド閉包である場合)。例えば、me
というムービークリップ内に、ある関数を作成するとします。
function myFunction(obj:Object):void { //your code here }
次に、map()
メソッドを、myArray
という配列に対して使用するとします。
myArray.map(myFunction, me);
myFunction
は、Timeline クラスのメンバーであり、me
でオーバーライドできないので、Flash ランタイムは例外をスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.map(myFunction, me);
パラメーター
callback:Function — 配列内の各アイテムについて実行する関数です。この関数には、単純なコマンド(ストリングの配列の大文字小文字の変更など)やより複雑な演算を含めることができます。また、この関数は、次のように、アイテムの値、アイテムのインデックス、および Array オブジェクトの 3 つの引数を使用して呼び出されます。
function callback(item:*, index:int, array:Array):String; | |
thisObject:* (default = null ) — 関数の this として使用するオブジェクトです。
|
Array — 元の配列内の各アイテムの関数の結果が含まれる新しい配列です。
|
関連する API エレメント
例 ( この例の使用方法 )
package { import flash.display.Sprite; public class Array_map extends Sprite { public function Array_map() { var arr:Array = new Array("one", "two", "Three"); trace(arr); // one,two,Three var upperArr:Array = arr.map(toUpper); trace(upperArr); // ONE,TWO,THREE } private function toUpper(element:*, index:int, arr:Array):String { return String(element).toUpperCase(); } } }
pop | () | メソッド |
AS3 function pop():*
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
配列の最後のエレメントを削除して、そのエレメントの値を返します。
戻り値* — 指定した配列の最後のエレメント(任意のデータ型)の値です。
|
関連する API エレメント
例 ( この例の使用方法 )
letters
を作成し、エレメント a
、b
、c
を設定します。次に、最後のエレメント(c
)を、pop()
メソッドを使って配列から削除し、String オブジェクト letter
に割り当てます。
var letters:Array = new Array("a", "b", "c"); trace(letters); // a,b,c var letter:String = letters.pop(); trace(letters); // a,b trace(letter); // c
push | () | メソッド |
AS3 function push(... args):uint
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
エレメントを配列の最後に追加して、追加後の配列の長さを返します。
パラメーター
... args — 配列に追加される値です。
|
uint — 新しい配列の長さを表す整数です。
|
関連する API エレメント
例 ( この例の使用方法 )
letters
を作成し、次にエレメント a
、b
、c
を、push()
メソッドを使って配列に設定します。
var letters:Array = new Array(); letters.push("a"); letters.push("b"); letters.push("c"); trace(letters.toString()); // a,b,c
letters
を作成します。このオブジェクトには、エレメント a
が最初から設定されています。push()
メソッドを 1 度使用して、エレメント b
と c
を配列の最後に追加します。push 後は、この配列のエレメントは 3 つになります。
var letters:Array = new Array("a"); var count:uint = letters.push("b", "c"); trace(letters); // a,b,c trace(count); // 3
removeAt | () | メソッド |
reverse | () | メソッド |
AS3 function reverse():Array
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
配列の並びを反転させます。
戻り値Array — 新しい配列です。
|
例 ( この例の使用方法 )
letters
を作成し、エレメント a
、b
、c
を設定します。次に、reverse()
メソッドを使用して、配列エレメントの順序を反転し、配列 [c,b,a]
を作成します。
var letters:Array = new Array("a", "b", "c"); trace(letters); // a,b,c letters.reverse(); trace(letters); // c,b,a
shift | () | メソッド |
AS3 function shift():*
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
配列の最初のエレメントを削除して、そのエレメントを返します。残りの配列エレメントは、元の位置 i から i-1 に移動されます。
戻り値* — 配列内の最初のエレメント(任意のデータ型)です。
|
関連する API エレメント
例 ( この例の使用方法 )
letters
を作成し、エレメント a
、b
、c
を設定します。次に、shift()
メソッドを使用して、1 番目のエレメント(a
)を letters
から削除し、それをストリング firstLetter
に割り当てます。
var letters:Array = new Array("a", "b", "c"); var firstLetter:String = letters.shift(); trace(letters); // b,c trace(firstLetter); // a
slice | () | メソッド |
AS3 function slice(startIndex:int = 0, endIndex:int = 16777215):Array
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
元の配列から一連のエレメントを取り出して、新しい配列を返します。元の配列は変更されません。返される配列には、startIndex
エレメントから endIndex
の前のエレメントまでのすべてのエレメントが含まれます。
パラメーターを渡さない場合、新しい配列は元の配列の複製(浅い複製)になります。
パラメーター
startIndex:int (default = 0 ) — スライスの始点のインデックスを示す数値です。startIndex が負の数値の場合、始点は配列の末尾から開始します。つまり、-1 が最後のエレメントです。
| |
endIndex:int (default = 16777215 ) — スライスの終点のインデックスを示す数値です。 このパラメーターを省略すると、スライスには配列の最初から最後までのすべてのエレメントが取り込まれます。endIndex が負の数値の場合、終点は配列の末尾から開始します。つまり、-1 が最後のエレメントです。
|
Array — 元の配列から取り出した一連のエレメントから成る配列です。
|
例 ( この例の使用方法 )
letters
を作成し、エレメント [a,b,c,d,e,f]
を設定します。次に、配列 someLetters
を、slice()
メソッドを呼び出し、エレメント 1(b
)から エレメント 3(d
)に対して作成します。その結果、作成される配列には b
と c
が設定されます。
var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(1,3); trace(letters); // a,b,c,d,e,f trace(someLetters); // b,c
letters
を作成し、エレメント [a,b,c,d,e,f]
を設定します。次に、配列 someLetters
を、slice()
メソッドを呼び出し、エレメント 2(c
)に対して作成します。その結果、作成された配列には [c,d,e,f]
が設定されます。
var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(2); trace(letters); // a,b,c,d,e,f trace(someLetters); // c,d,e,f
letters
を作成し、エレメント [a,b,c,d,e,f]
を設定します。次に、配列 someLetters
を、slice()
メソッドを最後から 2 番目のエレメント e
に対して呼び出すことにより作成します。その結果、作成される配列には e
と f
が設定されます。
var letters:Array = new Array("a", "b", "c", "d", "e", "f"); var someLetters:Array = letters.slice(-2); trace(letters); // a,b,c,d,e,f trace(someLetters); // e,f
some | () | メソッド |
AS3 function some(callback:Function, thisObject:* = null):Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
true
を返すアイテムに達するまで、配列内の各アイテムにテスト関数を実行します。このメソッドを使用して、配列内のいずれのアイテムもある基準(値が特定の数値より小さいなど)を満たしているかどうかを判別できます。
このメソッドで、2 番目のパラメーター thisObject
は、null
でなければなりません(最初のパラメーター callback
がメソッド閉包である場合)。例えば、me
というムービークリップ内に、ある関数を作成するとします。
function myFunction(obj:Object):void { //your code here }
次に、some()
メソッドを、myArray
という配列に対して使用するとします。
myArray.some(myFunction, me);
myFunction
は、Timeline クラスのメンバーであり、me
でオーバーライドできないので、Flash ランタイムは例外をスローします。このランタイムエラーは、次のように関数を変数に割り当てることによって回避できます。
var myFunction:Function = function(obj:Object):void { //your code here }; myArray.some(myFunction, me);
パラメーター
callback:Function — 配列内の各アイテムについて実行する関数です。この関数には、単純な比較(item < 20 など)やより複雑な演算を含めることができます。また、この関数は、次のように、アイテムの値、アイテムのインデックス、および Array オブジェクトの 3 つの引数を使用して呼び出されます。
function callback(item:*, index:int, array:Array):Boolean; | |
thisObject:* (default = null ) — 関数の this として使用するオブジェクトです。
|
Boolean — ブール値です。true を返します(指定された関数について配列内のいずれかのアイテムが true を返す場合)。それ以外の場合は false を返します。
|
関連する API エレメント
例 ( この例の使用方法 )
package { import flash.display.Sprite; public class Array_some extends Sprite { public function Array_some() { var arr:Array = new Array(); arr[0] = "one"; arr[1] = "two"; arr[3] = "four"; var isUndef:Boolean = arr.some(isUndefined); if (isUndef) { trace("array contains undefined values: " + arr); } else { trace("array contains no undefined values."); } } private function isUndefined(element:*, index:int, arr:Array):Boolean { return (element == undefined); } } }
sort | () | メソッド |
AS3 function sort(... args):Array
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
配列内のエレメントをソートします。このメソッドは、Unicode 値に基づいてソートを実行します。(ASCII は Unicode のサブセットです。)
デフォルトでは、Array
.sort()
は次のように動作します。
- ソートでは大文字と小文字が区別されます。Z は a よりも先になります。
- 昇順にソートされます。a は b よりも先になります。
- 配列はソート順を反映するように変更されます。同じソートフィールドを持つ複数のエレメントは、ソート済みの配列の中で連続的かつランダムに格納されます。
- データ型に関係なく、すべてのエレメントがストリングとしてソートされます。例えば、"1" は "9" よりも小さいストリング値であるため、100 は 99 よりも先になります。
デフォルト設定とは別の設定を使用して配列をソートする場合は、sortOptions
部分(...args
パラメーター)に記述されているソートオプションのいずれかを使用するか、またはソート処理を行う独自のカスタム関数を作成できます。カスタム関数を作成する場合、sort()
メソッドを呼び出して、カスタム関数の名前を最初の引数(compareFunction
)として使用します。
パラメーター
... args — 比較関数を指定する引数と、ソート動作を決定する値です。
このメソッドでは、
|
Array — 戻り値は、次に示すように、渡された引数によって異なります。
|
関連する API エレメント
例 ( この例の使用方法 )
vegetables
を作成し、エレメント [spinach, green pepper, cilantro, onion, avocado]
を設定します。次に、sort()
メソッドを使用して配列をソートします。メソッドの呼び出しにはパラメーターを使用しません。その結果、vegetables
は、アルファベット順でソートされ、[avocado, cilantro, green pepper, onion, spinach]
のようになります。
var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); trace(vegetables); // spinach,green pepper,cilantro,onion,avocado vegetables.sort(); trace(vegetables); // avocado,cilantro,green pepper,onion,spinach
vegetables
を作成し、エレメント [spinach, green pepper, Cilantro, Onion, and Avocado]
を設定します。最初に、sort()
メソッドをパラメーターなしで呼び出して配列をソートします。その結果、配列は [Avocado,Cilantro,Onion,green pepper,spinach]
のようになります。再度、sort()
を vegetables
に対して呼び出します。このとき、CASEINSENSITIVE
定数をパラメーターとして指定します。その結果、vegetables
は、アルファベット順でソートされ、[Avocado, Cilantro, green pepper, Onion, spinach]
のようになります。
var vegetables:Array = new Array("spinach", "green pepper", "Cilantro", "Onion", "Avocado"); vegetables.sort(); trace(vegetables); // Avocado,Cilantro,Onion,green pepper,spinach vegetables.sort(Array.CASEINSENSITIVE); trace(vegetables); // Avocado,Cilantro,green pepper,Onion,spinach
vegetables
を作成し、次に push()
を 5 回呼び出して配列を設定します。各 push()
呼び出しで、新しい Vegetable
オブジェクトが、Vegetable()
コンストラクターを呼び出すことで作成されます。このコンストラクターは、String(name
)オブジェクトと Number(price
)オブジェクトを受け取ります。次に示す値を使用して push()
を 5 回呼び出すことで、配列は次のように設定されます。[lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
sort()
メソッドを使用してこの配列をソートします。その結果、配列は [asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]
のようになります。
var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sort(); trace(vegetables); // asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44 //The following code defines the Vegetable class class Vegetable { private var name:String; private var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function toString():String { return " " + name + ":" + price; } }
sort()
メソッドをカスタムソート関数(sortOnPrice
)と共に使用している点が異なります。このカスタム関数は、アルファベット順ではなく価格に基づいてソートを行います。新しい関数 getPrice()
では価格が抽出されます。
var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sort(sortOnPrice); trace(vegetables); // celery:1.29, squash:1.44, lettuce:1.49, spinach:1.89, asparagus:3.99 function sortOnPrice(a:Vegetable, b:Vegetable):Number { var aPrice:Number = a.getPrice(); var bPrice:Number = b.getPrice(); if(aPrice > bPrice) { return 1; } else if(aPrice < bPrice) { return -1; } else { //aPrice == bPrice return 0; } } // The following code defines the Vegetable class and should be in a separate package. class Vegetable { private var name:String; private var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function getPrice():Number { return price; } public function toString():String { return " " + name + ":" + price; } }
numbers
を作成し、エレメント [3,5,100,34,10]
を設定します。パラメーターを指定せずに sort()
を呼び出すと、アルファベット順にソートされるため、[10,100,3,34,5]
のように期待しない結果になります。数値を正しくソートするには、定数 NUMERIC
を sort()
メソッドに渡す必要があります。この結果、numbers
は、次のようにソートされます。[3,5,10,34,100]
.
注意:sort()
関数のデフォルトの動作では、各エンティティがストリングとして処理されます。Array.NUMERIC
引数を使用する場合、Flash ランタイムでは、ソートを目的として、数値以外の値を整数に変換しようとします。この処理に失敗すると、ラインタイムはエラーをスローします。例えば、ストリング値 "6"
は整数に正しく変換できますが、ストリング値 "six"
を変換しようとした際にはエラーがスローされます。
var numbers:Array = new Array(3,5,100,34,10); trace(numbers); // 3,5,100,34,10 numbers.sort(); trace(numbers); // 10,100,3,34,5 numbers.sort(Array.NUMERIC); trace(numbers); // 3,5,10,34,100
sortOn | () | メソッド |
AS3 function sortOn(fieldName:Object, options:Object = null):Array
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
配列内のフィールド(複数のフィールドも可能)に基づいて、配列内のエレメントをソートします。配列は、次に示す特性を備えている必要があります。
- インデックス付き配列を対象とします。結合配列は対象外です。
- 配列の各エレメントは、プロパティがあるオブジェクトを保持するものとします。
- すべてのオブジェクトには共通のプロパティが少なくとも 1 つあるものとします。このようなプロパティをフィールドといいます。
fieldName
パラメーターを複数指定する場合、先頭のフィールドが第 1 ソートフィールド、2 番目のフィールドが第 2 ソートフィールド、(以下同様)と見なされます。ソートは Unicode 値に基づいて実行されます。(ASCII は Unicode のサブセットです。)fieldName
パラメーターで指定されたフィールドが、比較対象のいずれのエレメントにも含まれていない場合、そのフィールドは undefined
に設定されていると見なされます。エレメントはソート済みの配列に連続的かつランダムに格納されます。
デフォルトでは、Array
.sortOn()
は次のように動作します。
- ソートでは大文字と小文字が区別されます。Z は a よりも先になります。
- 昇順にソートされます。a は b よりも先になります。
- 配列はソート順を反映するように変更されます。同じソートフィールドを持つ複数のエレメントは、ソート済みの配列の中で連続的かつランダムに格納されます。
- 数値フィールドは、ストリングとしてソートされます。例えば、"1" は "9" よりも小さいストリング値なので、100 は 99 よりも先になります。
Flash Player 7 では options
パラメーターが追加されました。このパラメーターを使用すると、デフォルトのソート動作をオーバーライドすることができます。単純な配列(例えば、1 つのフィールドだけを持つ配列)をソートする場合、または options
パラメーターでサポートされていないソート順序を指定する場合、Array.sort()
を使用します。
複数のフラグを渡すには、ビット単位の論理和(OR)(|
)演算子で区切ります。
my_array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);
Flash Player 8 では、複数のフィールドでソートを行う場合に、各フィールドに対して異なるソートオプションを指定する機能が追加されました。Flash Player 8 以降では、options
パラメーターはさまざまなソートオプションの配列を受け入れます。各ソートオプションは fieldName
パラメーターのソートフィールドに対応します。次の例では、第 1 ソートフィールド a
を降順で、第 2 ソートフィールド b
を数値ソートで、第 3 ソートフィールド c
を大文字と小文字を区別しないでソートします。
Array.sortOn (["a", "b", "c"], [Array.DESCENDING, Array.NUMERIC, Array.CASEINSENSITIVE]);
注意:fieldName
配列と options
配列のエレメントは同数である必要があります。そうでない場合、options
配列は無視されます。また、Array.UNIQUESORT
オプションと Array.RETURNINDEXEDARRAY
オプションは、配列内の 1 番目のエレメントとしてのみ使用できます。そうでない場合、これらのオプションは無視されます。
パラメーター
fieldName:Object — ソート値として使用するフィールドを示すストリング、または、先頭のエレメントが第 1 ソートフィールド、2 番目が第 2 ソートフィールド(以下同様)を表す配列です。
| |
options:Object (default = null ) — bitwise OR(|) 演算子によって区切られた定義済み定数の数値または名前です。これによりソート動作を変更します。options パラメーターには次の値を指定できます。
数値形式(2)ではなく、ストリング形式のフラグ( |
Array — 戻り値は、パラメーターを渡したかどうかによって異なります。
|
関連する API エレメント
例 ( この例の使用方法 )
vegetables
を作成し、次に push()
を 5 回呼び出して配列を設定します。各 push()
呼び出しで、新しい Vegetable
オブジェクトが、Vegetable()
コンストラクターを呼び出すことで作成されます。このコンストラクターは、String(name
)オブジェクトと Number(price
)オブジェクトを受け取ります。次に示す値を使用して push()
を 5 回呼び出すことで、配列は次のように設定されます。[lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44]
. 次に sortOn()
メソッドを name
パラメーターと共に使用して、次の配列を作成します。[asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44]
. 次に、price パラメーターと NUMERIC および DESCENDING 定数を使用して sortOn()
メソッドを再度呼び出すと、次のように数値の降順でソートされた配列が作成されます。[asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29]
.
var vegetables:Array = new Array(); vegetables.push(new Vegetable("lettuce", 1.49)); vegetables.push(new Vegetable("spinach", 1.89)); vegetables.push(new Vegetable("asparagus", 3.99)); vegetables.push(new Vegetable("celery", 1.29)); vegetables.push(new Vegetable("squash", 1.44)); trace(vegetables); // lettuce:1.49, spinach:1.89, asparagus:3.99, celery:1.29, squash:1.44 vegetables.sortOn("name"); trace(vegetables); // asparagus:3.99, celery:1.29, lettuce:1.49, spinach:1.89, squash:1.44 vegetables.sortOn("price", Array.NUMERIC | Array.DESCENDING); trace(vegetables); // asparagus:3.99, spinach:1.89, lettuce:1.49, squash:1.44, celery:1.29 class Vegetable { public var name:String; public var price:Number; public function Vegetable(name:String, price:Number) { this.name = name; this.price = price; } public function toString():String { return " " + name + ":" + price; } }
records
を作成し、次に push()
を 3 回呼び出して配列を設定します。各 push()
呼び出しで、ストリングの name
と city
、および zip
番号を records
に追加します。3 つの for
ループを使用して配列エレメントを出力します。1 番目の for
ループでは、エレメントが追加された順に出力されます。2 番目の for
ループの前に、records
は、sortOn()
メソッドを使って name、city の順でソートされます。3 番目の for
ループでは、異なる出力が作成されます。records
は、city、name の順で再度ソートされているためです。
var records:Array = new Array(); records.push({name:"john", city:"omaha", zip:68144}); records.push({name:"john", city:"kansas city", zip:72345}); records.push({name:"bob", city:"omaha", zip:94010}); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // john, omaha // john, kansas city // bob, omaha trace("records.sortOn('name', 'city');"); records.sortOn(["name", "city"]); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // bob, omaha // john, kansas city // john, omaha trace("records.sortOn('city', 'name');"); records.sortOn(["city", "name"]); for(var i:uint = 0; i < records.length; i++) { trace(records[i].name + ", " + records[i].city); } // Results: // john, kansas city // bob, omaha // john, omaha
users
を作成し、次に push()
を 4 回呼び出して配列を設定します。各 push()
呼び出しで User()
コンストラクターを使って User オブジェクトを作成し、name
ストリング、age
uint を各ユーザーに追加します。結果として、配列は [Bob:3,barb:35,abcd:3,catchy:4]
のように設定されます。
次に、配列を次のようにソートします。
- name のみでソートすると、配列は
[Bob:3,abcd:3,barb:35,catchy:4]
のようになります CASEINSENSITIVE
定数を使って name でソートすると、配列は[abcd:3,barb:35,Bob:3,catchy:4]
のようになりますCASEINSENSITIVE
定数とDESCENDING
定数を使って name でソートすると、配列は[catchy:4,Bob:3,barb:35,abcd:3]
のようになります- age のみでソートすると、配列は
[abcd:3,Bob:3,barb:35,catchy:4]
のようになります。 NUMERIC
定数を使って age でソートすると、配列は[Bob:3,abcd:3,catchy:4,barb:35]
のようになりますDESCENDING
定数とNUMERIC
定数を使って age でソートすると、配列は[barb:35,catchy:4,Bob:3,abcd:3]
のようになります
indices
という配列を作成し、NUMERIC
定数と RETURNINDEXEDARRAY
定数を使って age でソートした結果をその配列に割り当てます。配列は [Bob:3,abcd:3,catchy:4,barb:35]
のように設定されます。次に、for
ループを使って配列を出力します。
class User { public var name:String; public var age:Number; public function User(name:String, age:uint) { this.name = name; this.age = age; } public function toString():String { return this.name + ":" + this.age; } } var users:Array = new Array(); users.push(new User("Bob", 3)); users.push(new User("barb", 35)); users.push(new User("abcd", 3)); users.push(new User("catchy", 4)); trace(users); // Bob:3,barb:35,abcd:3,catchy:4 users.sortOn("name"); trace(users); // Bob:3,abcd:3,barb:35,catchy:4 users.sortOn("name", Array.CASEINSENSITIVE); trace(users); // abcd:3,barb:35,Bob:3,catchy:4 users.sortOn("name", Array.CASEINSENSITIVE | Array.DESCENDING); trace(users); // catchy:4,Bob:3,barb:35,abcd:3 users.sortOn("age"); trace(users); // abcd:3,Bob:3,barb:35,catchy:4 users.sortOn("age", Array.NUMERIC); trace(users); // Bob:3,abcd:3,catchy:4,barb:35 users.sortOn("age", Array.DESCENDING | Array.NUMERIC); trace(users); // barb:35,catchy:4,Bob:3,abcd:3 var indices:Array = users.sortOn("age", Array.NUMERIC | Array.RETURNINDEXEDARRAY); var index:uint; for(var i:uint = 0; i < indices.length; i++) { index = indices[i]; trace(users[index].name, ": " + users[index].age); } // Results: // Bob : 3 // abcd : 3 // catchy : 4 // barb : 35
splice | () | メソッド |
AS3 function splice(startIndex:int, deleteCount:uint, ... values):Array
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
配列のエレメントを追加および削除します。このメソッドは、コピーを作成しないで、配列を変更します。
注意:Array のサブクラス内でこのメソッドをオーバーライドするには、次の例に示すように、パラメーターに ...args
を使用します。
public override function splice(...args) { // your statements here }
パラメーター
startIndex:int — 挿入または削除を開始する配列エレメントのインデックスを示す整数です。負の整数を使用すると、配列の末尾を基準として位置を指定できます。例えば、-1 は配列の最後のエレメントです。
| |
deleteCount:uint — 削除するエレメント数を示す整数です。この数には、startIndex パラメーターで指定するエレメントが含まれます。deleteCount パラメーターに値を指定しないと、配列内の startIndex の位置のエレメントから最後のエレメントまで、すべての値が削除されます。値として 0 を指定すると、エレメントは削除されません。
| |
... values — startIndex パラメーターで指定した配列内の位置に挿入するカンマ区切り値のオプションリストです。挿入される値が配列型の場合、配列はそのまま単一のエレメントとして挿入されます。例えば、既存の長さ 3 の配列に別の長さ 3 の配列を結合すると、結果の配列には 4 つのエレメントしかありません。ただし、このエレメントの 1 つは、長さ 3 の配列になります。
|
Array — 元の配列から削除されたエレメントを含む配列です。
|
例 ( この例の使用方法 )
vegetables
を作成し、エレメント [spinach, green pepper, cilantro, onion, avocado]
を設定します。次に splice()
メソッドを、パラメーター 2 と 2 を使用して呼び出します。これにより、cilantro
と onion
が spliced
配列に割り当てられます。vegetables
配列には [spinach,green pepper,avocado]
が含まれています。再度、splice()
メソッドを、パラメーター 1、0、spliced
配列を使って呼び出すと、[cilantro,onion]
が vegetables
の 2 番目のエレメントとして割り当てられます。
var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); var spliced:Array = vegetables.splice(2, 2); trace(vegetables); // spinach,green pepper,avocado trace(spliced); // cilantro,onion vegetables.splice(1, 0, spliced); trace(vegetables); // spinach,cilantro,onion,green pepper,avocado
cilantro
と onion
がトレースされるので、vegetables
のエレメントは 5 個あるかのように処理されますが、実際のエレメント数は 4 個で、2 番目のエレメントは 2 エレメントを含む別の配列です。cilantro
と onion
を個別に追加するには、次のように指定します。
var vegetables:Array = new Array("spinach", "green pepper", "cilantro", "onion", "avocado"); var spliced:Array = vegetables.splice(2, 2); trace(vegetables); // spinach,green pepper,avocado trace(spliced); // cilantro,onion vegetables.splice(1, 0, "cilantro", "onion"); trace(vegetables); // spinach,cilantro,onion,green pepper,avocado
toLocaleString | () | メソッド |
public function toLocaleString():String
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定された配列内のエレメントを表すストリングを返します。インデックス 0 から最大インデックスまでの配列内のすべてのエレメントを、カンマで区切られた連結ストリングに変換して返します。ActionScript 3.0 実装において、このメソッドは、Array.toString()
と同じ値を返します。
String — 配列エレメントのストリングです。
|
関連する API エレメント
toString | () | メソッド |
public function toString():String
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定された配列内のエレメントを表すストリングを返します。インデックス 0 から最大インデックスまでの配列内のすべてのエレメントを、カンマで区切られた連結ストリングに変換して返します。カスタムセパレーターを指定するには、Array.join()
メソッドを使用します。
String — 配列エレメントのストリングです。
|
関連する API エレメント
例 ( この例の使用方法 )
vegnums
変数に格納します。
var vegetables:Array = new Array(); vegetables.push(1); vegetables.push(2); vegetables.push(3); vegetables.push(4); vegetables.push(5); var vegnums:String = vegetables.toString(); trace(vegnums+",6"); // 1,2,3,4,5,6
unshift | () | メソッド |
AS3 function unshift(... args):uint
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
エレメントを配列の先頭に追加して、配列の新しい長さを返します。配列内の他のエレメントは、元の位置 i から i+1 に移動されます。
パラメーター
... args — 配列の先頭に挿入される数値、エレメント、または変数です。
|
uint — 配列の新しい長さを表す整数です。
|
関連する API エレメント
例 ( この例の使用方法 )
names
を作成します。ストリングの Bill
と Jeff
を、push()
メソッドを使って追加し、次にストリングの Alfred
と Kyle
を、names
の先頭に、unshift()
メソッドを 2 回呼び出して追加します。
var names:Array = new Array(); names.push("Bill"); names.push("Jeff"); trace(names); // Bill,Jeff names.unshift("Alfred"); names.unshift("Kyle"); trace(names); // Kyle,Alfred,Bill,Jeff
CASEINSENSITIVE | 定数 |
public static const CASEINSENSITIVE:uint = 1
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Array クラスのソートメソッドに対して、大文字と小文字を区別しないソートを指定します。この定数は、options
パラメーター(sort()
メソッドまたは sortOn()
メソッド)に使用できます。
この定数の値は 1 です。
関連する API エレメント
DESCENDING | 定数 |
public static const DESCENDING:uint = 2
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Array クラスのソートメソッドに対して、降順でのソートを指定します。この定数は、options
パラメーター(sort()
メソッドまたは sortOn()
メソッド)に使用できます。
この定数の値は 2 です。
関連する API エレメント
NUMERIC | 定数 |
public static const NUMERIC:uint = 16
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Array クラスのソートメソッドに対して、文字ストリングではなく数値によるソートを指定します。この定数を options
パラメーターに設定すると、sort()
メソッドと sortOn()
メソッドは、数字を文字ストリングとしてではなく、数値としてソートします。NUMERIC
定数を設定しないでソートを実行すると、各配列エレメントは文字ストリングとして処理され、Unicode 順でソートされます。
例えば、値 [2005, 7, 35]
の配列で、NUMERIC
定数を設定せずに options
パラメーターを使った場合、ソート後の配列は [2005, 35, 7]
となります。一方、NUMERIC
定数を設定した場合、ソート後の配列は [7, 35, 2005]
となります。
この定数は、配列内の数値に対してのみ適用されます。["23", "5"]
などの、数値データを含むストリングには適用されません。
この定数の値は 16 です。
関連する API エレメント
RETURNINDEXEDARRAY | 定数 |
public static const RETURNINDEXEDARRAY:uint = 8
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
ソート結果として、配列インデックスで構成される配列を返すことを指定します。この定数を options
パラメーター(sort()
メソッドまたは sortOn()
メソッド)に使用すると、元の配列を変更せずに、配列エレメントの複数のビューにアクセスすることができます。
この定数の値は 8 です。
関連する API エレメント
UNIQUESORT | 定数 |
public static const UNIQUESORT:uint = 4
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Array クラスのソートメソッドに対して、一意性ソート要件を指定します。この定数は、options
パラメーター(sort()
メソッドまたは sortOn()
メソッド)に使用できます。一意性ソートオプションを指定すると、ソート対象の任意の 2 つのエレメントまたはフィールドが同じ値である場合に、ソートが終了します。
この定数の値は 4 です。
関連する API エレメント
myArr
を作成します。
package { import flash.display.Sprite; public class ArrayExample extends Sprite { public function ArrayExample() { var myArr:Array = new Array(); trace(myArr.length); // 0 } } }
Tue Jun 12 2018, 10:34 AM Z