JavaScriptで配列の要素数を取得するには、配列オブジェクトのlengthプロパティを使います。
以下では、lengthプロパティの基本的な使い方と使用上の注意点について説明します。
lengthプロパティの基本的な使い方
要素数の取得
配列の要素数を取得するためにはlengthプロパティを使います。
lengthプロパティの値は配列の要素数なので、以下の例のように配列の要素数を取得することができます
(注:正確には、lengthプロパティには配列のインデックス番号の最大値+1が入ります。このことによる注意点については後ほど説明します)。
1 2 3 4 |
var arr = [0,1,2]; //要素数3の配列を生成 console.log(arr.length); //3 arr.push(3); //配列に要素を追加 console.log(arr.length); //4 |
ただし、次の例では注意が必要です。
1 2 3 4 |
var arr = [0,1,2]; //要素数3 arr[4] = 4; //一つとんでインデックス番号4に要素を追加 console.log(arr.length); //5 console.log(arr[3]); //undefined |
この例では、arr[3]をとばしてarr[4]に要素を追加しています。一見要素数は4つに見えますが、lengthプロパティには5が入ります。
この時、arr[3]の要素はundefined(未定義値)と見なされます。これは、lengthプロパティは正確には「配列のインデックス番号の最大値+1」を持つためです。
lengthプロパティの変更
lengthプロパティは変更することが可能です。
1 2 3 4 5 |
var arr = [0,1,2]; //要素数3の配列を生成 arr.length = 2; //lengthプロパティを減らす console.log(arr[2]); //undefined(インデックス番号2の要素は削除されているため未定義値) arr.length = 7; //lengthプロパティを増やす console.log(arr[6]); //undefined |
ここでも、lengthプロパティを変更して配列のサイズを拡張した場合、拡張した分の要素にはundefined値が入る点に注意しましょう。