INDEX
lengthプロパティとは?

JavaScriptのlengthプロパティは、配列の要素数(長さ)を取得したり変更したりするためのプロパティです。
配列の繰り返し処理や、要素の追加・削除など、さまざまな場面で利用される基本的なプロパティです。
配列の長さを取得する例
const fruits = ["apple", "banana", "cherry"];
console.log(fruits.length);
実行結果
3
この例では、配列に3つの要素が含まれているため、lengthは3を返します。
lengthプロパティで配列の長さを変更する
lengthは読み取り専用ではありません。値を書き換えることで、配列の長さを変更できます。
長さを短くすると要素が削除され、長さを大きくすると配列が拡張されます。
配列の長さを短くする例
const fruits = ["apple", "banana", "cherry", "orange"];
fruits.length = 2;
console.log(fruits);
実行結果
["apple", "banana"]
長さを2に変更したため、後ろの要素は削除されています。
配列の長さを伸ばす例
const fruits = ["apple", "banana"];
fruits.length = 5;
console.log(fruits);
console.log(fruits[2]);
実行結果
["apple", "banana", empty × 3]
undefined
配列の長さは5になりますが、新しい要素に値が代入されるわけではありません。
空要素(empty)とundefinedの違い
初心者が誤解しやすい点として、lengthを大きくした場合に追加されるのは空要素(empty)です。
undefinedという値が代入されるわけではありません。
const array = [];
array.length = 3;
console.log(array);
console.log(0 in array);
console.log(array[0]);
実行結果
[empty × 3]
false
undefined
配列の要素を読み取るとundefinedになりますが、実際には要素そのものが存在しない「空要素」となっています。
lengthプロパティの特性
| 操作 | 説明 | 結果 |
|---|---|---|
| 長さを短くする | 後ろの要素が削除される。 | 削除された要素は元に戻らない。 |
| 長さを伸ばす | 空要素(empty)が追加される。 | 値は代入されない。 |
| 長さを取得する | 現在の要素数を取得する。 | 数値が返される。 |
lengthを使ったループ処理
lengthは配列を順番に処理する際によく利用されます。
const fruits = ["apple", "banana", "cherry"];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
実行結果
apple
banana
cherry
配列の要素数が変わっても、自動的に最後まで繰り返されます。
for...ofとの使い分け
現在では、配列のすべての要素を順番に処理するだけなら、for...ofを使うことも多くなっています。
const fruits = ["apple", "banana", "cherry"];
for (const fruit of fruits) {
console.log(fruit);
}
インデックス番号が不要な場合は、こちらのほうがシンプルに記述できます。
配列を空にする方法
lengthを0にすると、すべての要素を削除できます。
const fruits = ["apple", "banana", "cherry"];
fruits.length = 0;
console.log(fruits);
実行結果
[]
配列を再利用したい場合によく利用される方法です。
まとめ
lengthは配列の要素数を取得できる。lengthを書き換えることで配列の長さを変更できる。- 長さを短くすると要素は削除され、元に戻せない。
- 長さを大きくすると空要素(empty)が追加される。
- ループ処理や配列を空にする処理など、さまざまな場面で利用される重要なプロパティである。