では、レベル別の練習問題を用意しました。各問題に「問題 → 解答 → 解説」を付けています。
初級レベル
- 問題
let arr = [10, 20, 30];
console.log(arr.length);
JavaScript解答: 3
解説: 要素は3つ。インデックスは 0,1,2 なので、最後のインデックス + 1 = 3。
- 問題
let arr = [];
arr[3] = 100;
console.log(arr.length);
JavaScript解答: 4
解説: インデックス3に値を入れたので、length は 3 + 1 = 4。空の要素があっても length は大きくなる。
中級レベル
- 問題
let arr = [1, 2, 3, 4];
arr.length = 2;
console.log(arr);
JavaScript解答: [1, 2]
解説: length を小さくすると末尾の要素が削除される。3 と 4 が消える。
- 問題
l
let arr = [1, 2];
arr.length = 5;
console.log(arr);
JavaScript解答: [1, 2, empty × 3]
解説: length を大きくすると空の要素が追加される。undefined ではなく「empty」として扱われる。
上級レベル
- 問題
let arr = [];
arr[2] = 'A';
arr[5] = 'B';
let count = 0;
for (let i = 0; i < arr.length; i++) {
if (i in arr) count++;
}
console.log(count);
JavaScript解答: 2
解説: 値が入っているのはインデックス2と5の2つ。in 演算子で存在チェックをしているので空の要素は数えられない。
まとめ
lengthは「最後のインデックス + 1」- 空の要素があっても length は大きくなる
lengthを小さくすると要素が削除される、大きくすると空が増える- 実際の要素数を数えるには
in演算子などで存在チェックが必要
