Foundation > Rogue Wave Script 言語リファレンス > 配列
 
配列
本セクションは、次のような構成になっています。
*Rogue Wave Script 配列
*配列コンストラクター
*配列のプロパティー
*配列メソッド
Rogue Wave Script 配列
配列では、0 で始まるインデックスを通じて参照され、順番に並べられた値のセットを操作するための方法を提供します。他の言語の配列と異なり、Rogue Wave Script の配列には固定サイズがなく、新しい要素が追加されると自動的に拡張されます。 たとえば、次のプログラムでは、空の配列を作成してから新しい要素を追加します。
a = new Array() // Create an empty array
a[0] = "first" // Set the element 0
a[1] = "second" // Set the element 1
a[2] = "third" // Set the element 2
配列は内部で分散オブジェクトとして表現されます。したがって、要素 0 および 要素 10000 だけが設定されている配列は 0 ~ 10000 の間の 9999 の要素ではなく、それら 2 つの要素を格納するために十分なメモリーを占有します。
配列コンストラクター
配列コンストラクターには、以下の 2 つの明確な構文があります。
Rogue Wave Script 配列コンストラクター構文 
構文
効果
new Array(長さ)
null に設定された 0 ~ 長さ-1 の要素を持つ長さ の新しい配列を返します。
長さ が数値でなく、conversion to a number が NaN を返する場合、2 つ目の構文を使います。
例:
  new Array(12) −> an array a with length 12 and a[0] to a[11] containing null.
  new Array("5") −> an array a with length 5 and a[0] to a[4] containing null.
  new Array("foo") −> 2 番目の構文を参照。
new Array(要素1, ..., 要素n)
要素1 を含む a[0]、要素2 を含む a[1] のある、長さ n の新しい配列 a を返します。 引数が指定されていない場合、つまり n=0 の場合、空の配列が作られます。 n=1 および 要素1 が数値か、または数値に変換できる場合、最初の構文が使われます。
例:
  new Array(327, "hello world") −> an array a of length 2 with a[0] == 327 and a[1] == "hello world".
  new Array() −> 長さ 0 の配列。
  new Array("327") −> 最初の構文を参照。
配列のプロパティー
配列のプロパティーは以下のとおりです。
Rogue Wave Script 配列のプロパティー 
構文
効果
配列[index]
インデックスを 0 ~ 2e32‑2 に変換できる場合 (数値への自動変換参照)、配列 [インデックス] は、配列の インデックス番目の要素の値です。 そうでない場合は、標準プロパティー・アクセスと見なされます。この要素が設定されていない場合、null が返されます。
例: 配列 a が次のように作成されたと仮定しましょう。
  a = new Array("foo", 12, true)
その場合、次のようになります。
  a[0] −> "foo"
  a[1] −> 12
  a[2] −> true
  a[3] −> null
  a[1000] −> null
配列の要素が現在の配列の長さよりも多く設定されている場合、配列は自動的に拡張されます。
  a[1000] = "bar"
  // the array is automatically expanded.
他のプロパティーとは異なり、配列の数値プロパティーは for..in ステートメントによって列挙されません
配列.length
配列に設定された要素のもっとも多いインデックスである 配列の長さに 1 を足したもの。 必ず 0 および 2e31‑1 に含まれます。配列に新しい要素が設定され、そのインデックスが現在の配列の長さ以上の場合、length プロパティーは自動的に増加します。
例: 配列 a が次のように作成されたと仮定しましょう。
  a = new Array("a", "b", "c")
その場合、次のようになります。
  a.length −> 3
  a[100] = "bar"; a.length −> 101
長さプロパティーを設定して、配列の長さを変更することもできます。
  a = new Array(); a[4] = "foo"; a[9] = "bar";
  a.length −> 10
  a.length = 5
  a.length −> 5
  a.length −> 5
  a[4] −> "foo"
  a[9] −> null
配列メソッド
配列には以下のメソッドがあります。
Rogue Wave Script 配列メソッド 
構文
効果
配列.join( [ 区切り文字 ] )
文字列に変換され、連結され、区切り文字で区切られた配列の要素が含まれる文字列を返します。 区切り文字が省略されている場合は、"," と見なされます。 初期化されていない要素は、空の文字列に変換されます。 文字列メソッド split (分割) も参照してください。
例: 配列 a が次のように作成されたと仮定しましょう。
  a = new Array("foo", 12, true)
その場合、次のようになります。
  a.join("//") −> "foo//12//true"
  a.join() −> "foo,12,true"
配列.sort( [ 関数 ] )
配列をソートします。 要素はその場所でソートされ、新しい配列は作成されません。
関数が指定されていない場合、配列は辞書式分類的にソートされます。 要素は、文字列に変換し、<= 演算子を使って比較されます。 この順番では、"20" < "5" が true なため、数値 20 が数値 5 よりも先になります。
関数が指定されている場合、配列はその関数の戻り値に従ってソートされます。 この関数では、必ず x および y の 2 つの引数を取り、以下を返します。
* xy よりも小さい場合は -1。
* xy が等しい場合は 0。
* xy よりも大きい場合は 1。
例: 関数 compareLength が次のように定義されていると仮定しましょう。
  function compareLength(x, y) {
    if (x.length < y.length) return -1;
    else if (x.length == y.length) return 0;
    else return 1;
  }
また、配列 a が次のように作成されたと仮定しましょう。
  a = new Array("giraffe", "rat", "brontosaurus")
a.sort() は、要素を次のように並べ替えます。
  "brontosaurus" "rat" "giraffe"
a.sort(compareLength) は、要素を次のように並べ替えます。
  "rat" "giraffe" "brontosaurus"
配列.reverse( )
配列の要素の置き換え: 最初の要素は最後に、2 番目の要素は最後から 2 番目になります。要素はその場所で逆になります。新しい配列は作成されません。
例: 配列 a が次のように作成されたと仮定しましょう。
a = new Array("foo", 12, "hello", true, false)
Then a.reverse() changes a so that:
a[0] −> false
a[1] −> true
a[2] −> "hello"
a[3] −> 12
a[4] −> "foo"
配列.toString( )
文字列 "[object Object]" を返します。

Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.