|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
arrayオブジェクトとは配列の事です。 arrayオブジェクトのメソッドは、nn4にはあるが、ie4には無い物は省きます。 このページでは配列とは? を説明して行くかたちになります。 【 配列 】 配列オブジェクトとは複数の値を持つ事のできる特殊な変数だと思ってください。 通常変数は1つの値しか持つ事はできませんが、配列オブジェクトとする事によって 必要な数だけ、値を格納する事ができるようになります。 基本的には、1つ目、2つ目、3つ目と言うように、配列に格納される値には インデックスがふられます。 オブジェクトの何番目の値、と言う様に指定する事でその値を操作できます。 【 基本的な作り方 】 var WeekName = new Array(); これで weeknameと言う配列オブジェクトが出来上がりました。 ただしこの状態では、weeknameにはなにも入っていません。 また、この配列の長さ(要素の個数)も決まっていません。 はじめから、配列の長さ(要素の個数)が決まっている場合は var WeekName = new Array(7); の様に、配列の要素数を入れて配列を生成します。 【 配列の要素 】 配列の要素を入れ込むには WeekName[0] = "Sun"; // index 0 の値 文字列を入れ込む場合 の様にインデックス指定を伴って行います。 インデックスは 0 から始まりますので 配列の要素数が7なら インデックスは 0〜6 と言う事になります。 配列を生成する際にすでに要素まで確定している場合は 要素を直接入れ込んで、配列を生成する事もできます。 var WeekName = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); 要素の値が文字列なので、シングル・ダブルクォーテーションを付けています。 要素はそれぞれカンマで区切られます。 これで weeknameには 要素数 7 と各要素の値が決まった状態で生成されます。 1つ目が0と言うインデックスになります。 ちょっと省略できる場合の要素入れ込み 要素の値が、インデックスと同じ番号を持つような値の場合 for文を用いて、簡略化できる場合があります。 var Imgs = new Array(30); imgsと言う配列に mark01.gif 〜 mark30.gif と言う要素を入れ込むとします。 この場合順に入れて行くと imgs[0] が mark01.gif imgs[29]が mark30.gif となります。 画像の方の番号は常にインデックスに1足した数字になる規則がありますね。 また、この場合 インデックスが1桁の場合、01 のように0を付けて2桁表示にします。 for(i=0; i<30; i++){ t=i+1; if(t<10){t = "0" + t; } Imgs[i] = "mark" + t + ".gif"; } 1足さなければならない事と、0を付ける場合があるので i をそのままでなく t に置換えるような使い方をしています。 【 連想処理配列 】 配列の要素は基本的には インデックスを使って WeekName[インデックス] と表すしますが この他に、各要素に名前を付けて取出すような方法があります。 Perlでの %連想配列 と同じような物です。 var WeekName = new Array(7) WeekName["Sun"] = "日曜日"; WeekName["Mon"] = "月曜日"; WeekName["Tue"] = "火曜日"; WeekName["Wed"] = "水曜日"; WeekName["Thu"] = "木曜日"; WeekName["Fri"] = "金曜日"; WeekName["Sat"] = "土曜日"; この場合、この要素入れ込みと同じように WeekName["Sun"] とすると、その値が 日曜日 として取出せます。 この場合、インデックスでの取出しはできません。 また、最初の段階で Array(7) の様に長さを指定しないと この配列の長さを lengthプロパティで確認する事もできません。 長さが変ってしまったらlengthは役に立ちません。 変数ではなく配列を使わざるを得ない場合等があります。 引数などによって得た値によって、使う変数を変える場合 変数の名前をもらっても、それを変数を指す言葉としては使えません。 ですから、数字や文字で貰って 配列[数字・文字] として 配列変数の要素の値として取出す事になります。 【 多次元配列 】 通常の配列の要素を言い表すと (値,値,値,値,値,値,値 ・・・・・) となります。 さて、この値 それぞれが 配列オブジェクトだったらどうなるでしょう? (配列,配列,配列,配列 ・・・・・) となるわけですが それぞれが配列なのでそれぞれの配列は、自分の配列の要素を持つ事になります。 ((値,値,値・・),(値,値,値・・),(値,値,値・・),(値,値,値・・)・・・)の様になるわけです。 さて、これで外枠からみて 1つ目の配列を表すには、配列[0]となりますね 次にその要素である内側の配列の要素は? 配列[0][0] のようになります。配列[0] の[0] 番目と言う意味です。 これは単純な2次元配列ですが、この様に多次元化する事もできます。 次の例は、10個の要素を持つ配列があり、その要素がそれぞれ 5個ずつの 要素を持っているような配列を作ってみました。
そして内側の配列の値を決めています。 2次元配列を図にすると次のような感じです、 まず行の数が外枠の配列、その行にいくつ列があるかが内側の配列 Arrays[i][t]
基本的なプロパティは、配列の長さ(要素の数)を表す lengthプロパティだけです。 配列の長さが決められて、生成された場合は 要素が空でも 長さは要素を入れることので着る部屋の数となります。 var WeekName = new Array(7); n = WeekName.length WeekName と言う配列の長さ(個数)は WeekName.length で表します。
IE4とNN3、またはNN4で共通で使える、配列操作の為のメソッドです。
配列の作り方の部分でほとんど書いたので サンプルなどはありません。 配列 Arrayオブジェクトは、オブジェクトです。 ですから、普通の変数のように = でコピーができません。 var ARY1 = new Array() ARY2 = ARY1; この場合、 ARY2は オブジェクトとして操作できますが これは、ARY1を参照しているショートカットのような状態です。 ですから ARY2にsort()等変更を加えると、ARY1も変更が加えられます。 オブジェクトの場合、この様な書き方では同じ物をコピーする事ができません。 両方がリンクされてる状態のままになってしまいます。 もし同じ配列を作りたいなら、for文などですべて順にコピーしていく 等の様な方法になるのではないでしょうか。 なんかもっと他に方法があるような気もしますが・・・。 var array1 = new Array(10) var array2 = new Array() for(i=0;i>array1.length;i++){ array2[i] = array1[i]; } 『配列』と言う言い方と多少違う部分があるのですが、扱いはほとんど同じなのでオブジェクト作成も含めて書いておきます。 var ARY = new Array(2,4,6,7,8,9) と書く代わりに var ARY = [2,4,6,7,8,9] と書いても同じです。 連想配列の場合は var ARY = {'aaa':2,'bbb':4,'cccc':6} の様に { } を使ってキーと値の組み合わせを :コロンで組み合わせて書き込みます。 これは実際は配列ではなく、オブジェクトになるんだと思いますが扱いはほぼ同じです。 |
専用ページから申し込むと So-netより高い3万円CB
案ずるより産むが易し
使ってみれば疑問も解決 XREA+ (plus) 206円/月 ( お試し7日間 ) CORE SERVER 428円/月 ( お試し15日間 ) ロリポップ 270円/月 ( お試し期間10日間 ) ヘテムル 1620円/月 ( お試し期間15日間 ) さくら 129円/月 ( お試し期間2週間 ) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||