JavaScriptの配列


  Share  
|


ため、オブジェクトの各プロパティは、自身の名前と値を持つプロパティのコレクションは、実際にJavaScriptのオブジェクトの配列されています。 配列の各プロパティは、要素であり、各要素の値を割り当てることができます。 配列の考えを1つの方法として、番号の変数のコレクションです。

JavaScriptで配列の要素に値を割り当てるためには、以下の一般的なフォーマットがあります:

  sampleArr [ 0 ] = 1 ;  
  sampleArr [ 1 ] = "アイスクリーム" ;  
  sampleArr [ 2 ] = 55 * ( 7 + α ) ;  
  sampleArr [ 3 ] = shootTheMoon ( 73 ) ;  
  sampleArr [ 4 ] = otherArr [ 7 ] ; 

または

  sampleArr =新しいアレイ( 1 、 "アイスクリーム" 、 ( 55 * ( 7 + α ) ) 、 shootTheMoon ( 73 ) 、  
  otherArr [ 17 ] ) ; 

オレゴンは、 JavaScript 1.2以降で:

  sampleArr = [ 1 、 "アイスクリーム" 、 ( 55 * ( 7 + α ) ) 、 shootTheMoon ( 73 ) 、 otherArr [ 17 ] ] ; 

すべての3つの配列を、データの割り当てを別の方法を使用して同じです。 一方、最初の方法は、可変配列のような特性を示して2番目の2つの方法は、オブジェクトの詳細を、配列を示しています。

JavaScriptでは、配列の要素が0 始まる番号を順次またはnonsequentiallyすることもできます。 2番目の2つ前の例では、最初の要素を0 されている他のデータをカンマで区切って順番に番号付けされています。 ただし、配列には、次のデータを代入している可能性がある:

  alphaArr [ 0 ] = "宇野" ;  
  alphaArr [ 7 ] = "ドス" ;  
  alphaArr [ 345 ] = "トレス" ; 

通常、アレイ順番に番号が付いていますので、データが追加されるとループを使用して抽出することができます。 ただし、配列の要素に規定任意の順序で呼び出すことができますし、変数と同じように使用されます。

は、データとデータ型は、配列の要素に割り当てることが可能なデータとデータ型には、変数に割り当てることができます同じです。 また、お客様のデータは、同じ種類のオブジェクトを割り当てることができますが見つかります。 (つまり、配列のオブジェクトは、単一のプロパティ以上で構成されていますのでご注意ください。 )

配列を設定する

配列は、コンストラクタを使用して、他のオブジェクトと同じように作成されます。 、 Array ( )コンストラクタは、次の形式を使用します:

  Varの部品=新しいアレイ( ) ; 

現在、 部品を配列オブジェクトで、次のような形式でデータを追加することができます:

 部品[ 0 ] = "ボルト" ;  
 部品[ 1 ] = "ナッツ" ; 

変数の宣言と同様に、配列を宣言する際にデータを入力する必要はありませんが、することができます。 たとえば、との密な配列を宣言することがあります( )コンストラクタ: アレイを使用して定義

  Varの部品=新しいアレイ( "ボルト" 、 "ナッツ" 、 "ワッシャー" 、 "ネジ" ) ; 

また、 1次元配列の引数を使用して作成できます。 もし今後どのように多くの要素を配列している時間を知って、あなたはそれを宣言することもできますして、同時にディメンションを設定します。 (一部の言語では、特に古いものは、お客様の配列の配列のための予備メモリにディメンションを含める必要があります。 )たとえば、米上院の配列を作成しているしている場合のみ、 100上院議員が知っている、を宣言する可能性があると次元配列として以下の通り:

  Varの上院議員=新しいアレイ( 100 ) ; 

1回と宣言し、寸法は、 100の要素を追加することができますが、この最初の上院議員になる:

 上院議員[ 0 ] 

最後の本になる:

 上院議員[ 99 ] 

あなたはまだ100の要素を得るが、あなたの代わりに0 1で始める必要があります。

この宣言は、ディメンションの引数を使用して、ルールは、密な配列内の最初のデータ値( 1つは、括弧内のデータに含まれている)と考えられている要素を0に例外ではない。 配列の要素0は最初のデータの割り当ては、宣言の後になります。 たとえば、 5月には、次の最初の次元の配列を宣言し、 7月としては、次の行の最初の配列の要素( 0 )を入力:

  VarのcatWeights =新しいアレイ( 5 ) ;  
  catWeights ( 7,15,34,52,60 ) ; 

は、数値データ値を5には、配列の要素の値ではありません。 これは、アレイの長さ、要素0-4からです。

はJavaScriptのバージョン番号を指定せずに、タグ<script language="JavaScript">使用しています。 場合は、バージョン番号を指定するにはJavaScriptの最新バージョンを入手してお使いのブラウザでサポートされている必要はありません。 <scriptを指定する場合はlanguage="JavaScript1.2">し次元配列を試みるときに、あなたはバグに実行されるNetscape Navigatorの4 ( NN4 )以降では、ディメンションの引数を使用しています。 NN4 +の配列の長さではなく、配列内の最初の値としては、寸法値が設定された宣言を扱います。 たとえば、次のスクリプトをしてください:

  <html>次  
  <head>タグ  
  <script language="JavaScript1.2">  
  Varのテスト=新しいアレイ( 23 )  
 のdocument.write ( ) test.length ;  
  < /スクリプト>  
 と< / head >  
 の<body>  
 と< / body >  
  < / HTML形式> 

NN4または保存するときには、スクリプトを使用して実行すると、 1画面に表示されます。 場合は<script> タグから1.2 属性を削除すると 、戻り値23は、適切な長さです。 これはJavaScript 1.5はNetscape Navigatorの6 では<script>タグのバージョン番号を指定せずにダンディー、 Internet Explorer用のも、バージョン番号を指定せずに実行され、最新バージョンを実行すると、私は習慣として、すべてのバージョン番号を除外することを好む。 このように、私は、バグを回避することができるとスパンとブラウザのバージョンJavaScriptです。

または1.2を使用してJavaScriptの配列を宣言して以降は、配列リテラルと呼ばれている最後の方法です。 宣言の代わりに括弧と括弧を使用しては、 Array ( ) コンストラクタを必要としません。 配列オブジェクト名だけがカッコ内で値を割り当てることにより、以下のスクリプトを示すように宣言されています:

  <html>次  
  <head>タグ  
  <script language="JavaScript">  
  Varのリエ= [ "はい" 、 "ない" 、 "かもしれない" ] ;  
  (照明付[ 2月のdocument.write ] ) ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor=#face00>  
 と< / body >  
  < / HTML形式> 

リエは、リテラル配列変数を定義ほとんどのようではなく、値の一覧については、これで、括弧で囲まれたようだ。 配列リテラルを使用するが、カップルのための手順のコンストラクタは使用されている古いブラウザを保存する(これらのJavaScript 1.2のサポート前)は、配列として理解されません。

配列のプロパティとメソッド

は、オブジェクトとして、配列は、いくつかの方法を1つプロパティを 、長さがある。 しかし、 Netscape Navigatorの4 5つのメソッドは、 Array.pop 導入( )Array.push ( )Array.shift ( )Array.unshift ( ) 、とArray.splice ( ) 、 Internet ExplorerまたはそのいずれかによってサポートされていないEMCA - 262標準。 が包括される問題を回避するために、私のセクションでは、実際にはIEのユーザーが正しく解析されませんを警告するためには、 NN4 + 、配列のメソッドを配置している。 すべてのJavaScriptの機能の強化EMCAの基準ではサポートされていないように、私は、視聴者の両方を期待している主要なブラウザを使用してWebサイトを作成するためのこれらのメソッドを使用することをお勧めしていません。

配列の長さ

プロパティの長さは、 1台のアレイ配列の要素数を返します。 ときにループを使用して、ループのためのテスト条件が配列の長さはそうすることで、テストのための不変の値を使用する必要はありませんすることができます。 このフォーマットは以下の通りです:

 Array.length 

プロパティを簡単に変数には、以下のサンプルを示しますとして渡されます:

  Varの犬=新しいアレイ( "ビーグル" 、 "テリア" 、 "コリー" 、 "ミックス" ) ;  
  VarのdogTail = dogs.length ; 

4つの要素を構成するため、配列変数 dogTail 4を長さがある。 lengthプロパティは、文字の数には、配列の要素を構成する参照していませんが、要素の数自体を指します。 したがって、次の配列にもかかわらず、 より多くの文字の最初の例では4の長さでも使用されている2の長さがあります

  Varの犬=新しいアレイ( "グレータースイスの山の犬" 、 "アイリッシュウルフハウンド" ) ; 
配列の要素を連結さ:参加( ) 、のtoString ( ) 、とconcatは( )

このArray.join ( )メソッドが、すべてのすべての配列の要素の内の値を、 1つの巨大な文字列を作成します。 たとえば、次のスクリプトを試してみる:

joinArray.html
  <html>次  
  <head>タグ  
  <script language="JavaScript">  
  Varの木=新しいアレイ( "エルム" 、 "パイン" 、 "オーク" ) ;  
  VarのbigBush = trees.join ( ) ;  
  ( bigBush ) ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor=#ace007>  
 と< / body >  
  < / HTML形式> 

マイナスの結果は、二重引用符は、配列の内容を、エルム、パイン、オークあなたを見せている

このArray.join ( )メソッドは、引数を受け入れますが、区切り文字として機能します。 参加するにはどのような場合位( )括弧は、カンマ引用符で置き換えられます。 たとえば、この行を変更:

  VarのbigBush = trees.join ( ) ; 

〜へ

  VarのbigBush = trees.join ( " " ) ; 

その後、再度、別の結果のためのスクリプトを起動します。 2番目の結果エルム、パイン、オークされています。

JavaScriptのメソッドは、 1月1日から古いArray.join ( ) メソッドですArray.toString似ている( ) toString ( )メソッドとして参加、同じ結果を生成する( )が、参加をすることができますとしての要素の間の接続文字を指定することはできません(

3番目のメソッドで文字列の配列要素を連結するために使用Array.concat ( )です。 だけでなく、 concatは( )メソッドは既存のすべての要素が加わるが、また、 concatは内の要素( の引数が追加されます。 たとえば、少しjoinArray.htmlスクリプトを変更することで、あなたを見ることができるような仕組みになっている。

concatArray.html
  <html>次  
  <head>タグ  
  <script language="JavaScript">  
  Varの木=新しいアレイ( "エルム" 、 "パイン" 、 "オーク" ) ;  
  VarのbiggerBush = trees.concat ( "もみじ" 、 "シカモア" ) ;  
  VarのbigBush = trees.join ( ) ;  
  ( biggerBush ) ;  
 警告( bigBush ) ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor=#ace007>  
 と< / body >  
  < / HTML形式> 

concatArray.htmlスクリプトのは、非常に重要な部分はそのArray.concat ( ) メソッドは配列の内容を変更することはありませんを参照することができます。 配列の名前の木々はまだ3つの要素のみをしている。 という事実が表示される警告メッセージのみを3つの要素にもかかわらず、変数bigBushのbiggerBush 変数を定義した後に表示されますが立証して定義され、もみじとのミックスにシカモアデータを追加。 配列に要素を追加するには、名前の要素に新しい値を割り当てます。 たとえば、この書き込み可能性がある:もみじとは、配列にシカモアのデータを含むように

 木[ 3 ] = "もみじ" ; / / 4番目の要素は3ですので、最初は0です  
 樹木[ 4 ] = "シカモア" ; 
配列の順序を変更する:並べ替え( )と逆( )

2つの方法配列の要素の順序を変更することがご利用いただけます。 文字列の最初の要素をアルファベット順に配列をソートし、 2つ目の順序を反転させる。

このArray.sort ( )メソッドは、文字列を使用する場合は特に簡単です。 すべての配列には、文字列を入力した後、ここでは単に、配列のメソッドの名前を入力して、配列アルファベット順に指示されています。 次の例の両方をどのように並べ替え( )メソッドと作品をどのように配列の要素をループ文で抽出さを示しています。

sortArray.html
  <html>次  
  <head>タグ  
  <script language="JavaScript">  
  Varの動物園=新しいアレイ( "シマウマ" 、 "ライオン" 、 " " 、 "虎" )類人猿;  
  zoo.sort ( ) ;  
  VarのnewZoo = " " ;  
  = 0 ;カウンター< ;カウンタ+ + ) zoo.length ( Varのカウンタの( 
  newZoo + = (動物園[カウンタ] + "で<br> " ) ;  
  )  
  ( " 50音順<p>動物<p> " + newZoo ) ;  
  < /スクリプト>  
 と< / head >  
  <body bgcolor="lightsteelblue">  
 と< / body >  
  < / HTML形式> 

すべての値のアルファベット順に配列されています。

類人猿

ライオン

シマウマ

あらゆる種類の順序の一覧については、 ( )メソッドは便利なツールは、 Array.sortが見つかります。

このArray.reverse ( )メソッドだけでは、配列内のデータの順序を反転させる。 最初の要素の最後の要素は、配列にあるすべてのものとなり、他の人にも逆転されています。 たとえば、以下の通りです:

  VarのmajorCities =新しいアレイ( "東京" 、 "ロサンゼルス" 、 "パリ" 、 "北京" 、 "ブルームフィールド" )  
  marjorCities.reverse ( ) ; 

このリターンと:

 ブルームフィールド、北京、パリ、ロサンゼルス、東京 

Array.sort を使用することにより( )コンサート( )で、変更することができます昇順にソートリストと注文Array.reverse下降。

解凍Subarrays :スライス( )

一subarray 、使用Array.slice を指定するには( ) 。 スライスを使用することの一般的な形( )ここに示されています:

  ArrayName.slice (終了)を開始 

または

  ArrayName.slice (最後に)を開始 

たとえば、これらのステートメントがあります:

 コンピュータ= [ "デル" 、 "ゲートウェイ" 、 "アップル" 、 " IBM社" 、 " HPの" ] ;  
  computer.slice ( 2,4 ) ; 

お戻りになる

 アップル社は、 IBM 

1つの引数を使用して、引数は、引数で定義されている配列の要素の最後にかかる。 例えば:

  computer.slice ( 2 ) ; 

戻ってくると

 アップル社は、 IBM 、 HPは、 

負の数の引数はArray.slice ( )メソッドで使用される最終的なタイプである 。 負の値は-1として、配列の最後の要素で始まる最初の要素を後方に向けてカウントされます。 たとえば、このセクションの例からの声明:

  computer.slice ( -1 ) 

これを返す:

  HPの 

スライスとは異なり、前向きなカウントが0には、配列の最後の要素を配列として識別されます-1 ( )メソッドは、スライスの使用を開始。

Navigatorの4コアArrayのメソッド:ポップ( ) 、プッシュ( ) 、シフト( ) 、シフトキーを戻す( ) 、スプライス( )

の方法をこの最後のセットの配列と一緒に仕事するユーティリティの良い取引を追加すると、スタックの配列で操作を実行できるようにします。 もしあなたがこれまでにフォースまたはAdobeのPostScriptのコードで書かれたプログラムを書いた場合は、スタックで、仕事をしていただき、ポップ( )プッシュ( )慣れている。 それぞれの5つの簡単な説明を簡潔に記載されている以下の1つの例に基づいています:

  VarのstackWork =新しいアレイ( "レニー" 、 "ハロルド" 、 "メリー" 、 "ジャン" 、 "サル" ) ; 

Array.pop ( )は配列の最後の要素を返しますが削除されます。

stackWork.pop ( ) ;を返しますサルとは、配列から削除します。 同一の場合、 2番目のステートメントは、次の行に行われた、ジャン返します。

Array.push ( )は配列の最後に(スタックの)トップの値を追加し、それを終了する。 次の行を追加することで、文字列の最後の要素をデリア新しい値になる( )メソッド:プッシュして、 配列に追加

  stackWork.push ( "デリア" ) ; 

ポップ( )オペレーションでは、 ( LIFOオフの最初の1つになるが、オフ最初の)最後。

Array.shift ( )は、配列を返すには、最初の要素を削除します。 たとえば、この、配列からそれを削除すると 、レニーを返すと、残りの要素を左にシフト:

  stackWork.shift ( ) ; 

要素0ハロルドなる。

Array.unshiftのは 、新しい要素は、 配列の前では、スタックの(下)することを除いて( )メソッドは、プッシュ( )に似ている。 場合は、次の入力は、最初の要素は、配列(要素0 )ウィリーの価値があると、 全体の配列のためにレニーの右にある要素を1にシフトされる値など:

  stackWork.unshift ( "ウィリー" ) ; 

最後に、 Array.splice ( )メソッドを挿入するように削除して、配列の要素の代替値が使用されています。 3つの引数は、メソッド、 削除を起動すると、データしている 。 開始位置)ですが、新しい値(データを指定し、どこで挿入されるの削除を開始します。 削除がない場合は、スプライス( )メソッドが指定されていると値を配列に要素を挿入するという効果があります。 たとえば、次の方法の2番目の要素にフレッドの値を挿入するように、最初から削除されており、右側には、残りのシフト:

  stackWork.splice ( 1,0 、 "フレッド" ) ; 

は、 スプライス( )メソッドでは、要素を挿入するように1つまたは複数の要素を、削除、または配列要素の値を変更することができます。 あなたは、これらの関数は、古いブラウザでは動作しませんが、見つけるかもしれないNN4 + IE5 +と彼らとうまく動作します。

記事ジョージFreedrichが提出

Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions