JavaScript | 配列・オブジェクト:配列の基礎 – length プロパティ

JavaScript JavaScript
スポンサーリンク

length プロパティとは何か

length プロパティは「配列の要素数」を表す特別な値です。配列に何個の要素が入っているかを常に返してくれます。ここが重要です:length は「最後のインデックス + 1」と常に一致します。つまり、配列の末尾にアクセスしたいときは arr[arr.length - 1] が定石です。


基本の使い方(要素数の確認と末尾アクセス)

要素数を調べる

const fruits = ["apple", "banana", "cherry"];
console.log(fruits.length); // 3
JavaScript

ここが重要です:length は「配列に入っている数」を返します。空配列なら 0、要素を追加すれば増えます。

最後の要素を取り出す

console.log(fruits[fruits.length - 1]); // "cherry"
JavaScript

ここが重要です:配列は 0 から始まるため、最後のインデックスは length – 1。これを覚えると「末尾の要素を安全に取る」ことができます。


length と追加・削除の関係

要素を追加すると length が増える

fruits.push("orange");
console.log(fruits.length); // 4
JavaScript

ここが重要です:push/pop などの操作は length を自動で更新します。自分で length を計算する必要はありません。

要素を削除すると length が減る

fruits.pop();
console.log(fruits.length); // 3
JavaScript

ここが重要です:配列の操作は常に length に反映されます。length は「今の状態」を正しく示すので、ループや判定に安心して使えます。


length を直接書き換える(縮める・伸ばす)

縮めると末尾が消える

const nums = [1, 2, 3, 4, 5];
nums.length = 3;
console.log(nums); // [1, 2, 3]
JavaScript

ここが重要です:length を小さくすると末尾が切り落とされます。データが消えるので、意図せず縮めないよう注意してください。

伸ばすと“穴”ができる

nums.length = 6;
console.log(nums); // [1, 2, 3, <3 empty items>]
JavaScript

ここが重要です:length を大きくすると「空の要素」が増えます。これは undefined とは違う“穴”で、forEach などでスキップされることがあります。初心者は混乱しやすいので、push で追加するほうが安全です。


length とループの組み合わせ(典型パターン)

for ループで使う

const arr = ["A", "B", "C"];
for (let i = 0; i < arr.length; i++) {
  console.log(i, arr[i]);
}
JavaScript

ここが重要です:i < arr.length がループの基本形。<= にすると範囲外を参照して undefined が出る「オフバイワン」バグになります。

while ループで使う

let i = 0;
while (i < arr.length) {
  console.log(arr[i]);
  i++;
}
JavaScript

ここが重要です:length を条件にすれば「配列の長さに応じて安全に繰り返す」ことができます。


length と空配列の判定

空かどうかを調べる

const empty = [];
if (empty.length === 0) {
  console.log("配列は空です");
}
JavaScript

ここが重要です:length が 0 なら空配列。条件分岐で「データがあるかどうか」を簡単に判定できます。


よくある落とし穴と回避策

length を直接伸ばしてしまう

意図せず「穴だらけの配列」を作ると、map/filter などで期待通りに動かなくなります。追加は push を使うのが安全です。

ループ条件のオフバイワン

i <= arr.length と書くと最後に undefined を参照してしまいます。必ず i < arr.length を徹底しましょう。

length と undefined の混同

穴(empty item)は undefined とは違う扱いになることがあります。初心者は「空要素は undefined」と思いがちですが、実際は挙動が異なるので注意してください。


まとめ

length プロパティは「配列の要素数」を返す基本中の基本です。最後の要素は arr[arr.length - 1]、ループ条件は i < arr.length が鉄則。length を直接書き換えると縮めたり穴を作ったりできるため、初心者は push/pop/splice を使うほうが安全です。空配列の判定やループの基準に length を使えば、配列操作が安定してバグが減ります。

タイトルとURLをコピーしました