配列変数 †一般 †配列の作成 †//配列の作成 arr1=new Array(要素数); //要素数を指定して作成 arr2=new Array(); //要素数を省略 arr3=new Array(値,値,値,・・・・); //値を指定 arr4=[要素数]; arr5=[]; arr6=[値,値,値,・・・・]; 要素数を省略して作成した場合、値を格納する時に自動的に要素数が拡張されます。以下のように途中の要素をスキップして値を格納してもその要素数まで自動的に要素数が拡張されます。 arr2=new Array(); length1=arr2.length; arr2[10]=1; length2=arr2.length; alert(length1+":"+length2); 結果 0:11 配列のクリア †配列にデータを代入後、その値を全てない状態にするには、以下の例(3通り)のようにしてクリアします。 //配列の作成 var fruits = ["apple","blueberry","cherry","grape","orange"]; //配列のクリア(その1) //配列の長さ(length)の要素を0(ゼロ)にする。 fruits.length = 0; //配列のクリア(その2) //新たに配列を作成して初期化する。 fruits = []; //配列のクリア(その3) //新たに配列を作成して初期化する。 fruits = new Array(); 要素の削除 †
配列のチェック †変数が配列かどうかチェックするには、ArrayクラスのisArrayメソッドを使用します。 Array.isArray(obj) 引数 obj : チェックするオブジェクト 返り値 true : 配列 false : 配列ではない 変数をarrとすると以下のようになります。 if ( Array.isArray(arr) == true ) { alert('配列'); } else { alert('配列ではない'); } 使用しているブラウザーがisArrayメソッドをサポートしていない場合は、配列の属性(length)にアクセスしてエラー(undefined)になるかどうかで確認します。 if ( arr.length === undefined ) { alert('配列ではない'); } else { alert('配列'); } 上記の互換性を持たせるには以下のコードを他のコードよりも前に記述します。 if(!Array.isArray) { Array.isArray = function (vArg) { return !(vArg.length === undefined); }; } 連想配列 †連想配列は通常の配列と色々な面で違いがあります。 要素の設定 †//連想配列の作成
var fruits = {a:"apple", b:"blueberry", c:"cherry", g:"grape", o:"orange"};
要素の取得 †連想配列から要素を取得する場合は、以下のようにします。 //連想配列の作成 var fruits = {a:"apple", b:"blueberry", c:"cherry", g:"grape", o:"orange"}; // データの取得 for ( var key in fruits ) { fruit = fruits[key]; } 重要:連想配列からデータを取り出す場合、その順番は保障されません。データを配列にセットした順番にデータが取り出されませんし、キーでソートもできないので取り出す時に規則性を持たしたい時は工夫が必要です。 要素の削除 †//連想配列の要素を削除 delete object.a; //この書き方でも削除できます delete object['a']; オブジェクトの全ての要素を削除する //連想配列をループ for(var key in object){ //連想配列の要素を一つずつ削除していく delete object[key]; } 要素数 †配列の要素数は「配列.length」で取得可能ですが、連想配列では「配列名.length」では取得できません(「null」が返されます)。 連想配列の場合、Objectの「keys」メソッドを使用すれば要素数を取得できます。 Object.keys(オブジェクト);
「keys」メソッドは、引数に指定されたオブジェクトで直接発見された列挙可能なプロパティに対応する文字列を要素とする配列を返します。 そのため次のようにすれば、連想配列の要素数を取得できます。 Object.keys(配列名).length;
//連想配列の作成 var fruits = {a:"apple", b:"blueberry", c:"cherry", g:"grape", o:"orange"}; //配列の要素数を計算 var cnt = Object.keys(fruits).length; 上の場合、要素数cntは「5」となります。 Last-modified: 2015-12-13 (日) 01:49:33 (3217d)
|