length は Array 型のインスタンスであるオブジェクトのプロパティで、配列の要素の数を設定または取得します。値は符号なし32ビット整数で、常に配列の最も大きなインデックスよりも数値的に大きくなります。
このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。
解説
length プロパティの値は正符号を持つ整数で、2 の 32 乗 (232) 未満の値です。
var namelistA = new Array(4294967296); //2 to the 32nd power = 4294967296 var namelistC = new Array(-100) //negative sign console.log(namelistA.length); //RangeError: Invalid array length console.log(namelistC.length); //RangeError: Invalid array length var namelistB = []; namelistB.length = Math.pow(2,32)-1; //set array length less than 2 to the 32nd power console.log(namelistB.length); //4294967295
length プロパティに値をセットすることで、いつでも配列を短縮することができます。 length プロパティの値を現在より大きな値に変更すると、配列内の要素数も増加します。例えば length が現在 2 のところに 3 をセットすると、配列内の要素数は 3 になり、3番目の要素は反復処理できない空のスロットになります。
const arr = [1, 2]; console.log(arr); // [ 1, 2 ] arr.length = 5; // set array length to 5 while currently 2. console.log(arr); // [ 1, 2, <3 empty items> ] arr.forEach(element => console.log(element)); // 1 // 2
ご覧の通り、 length プロパティは必ずしも配列内で定義された値の数を示しているわけではありません。詳細は length と数値プロパティとの関係 をご覧ください。
Array.length のプロパティ属性 |
|
|---|---|
| 書込可能 | 可 |
| 列挙可能 | 不可 |
| 設定可能 | 不可 |
例
配列を反復処理する
以下の例では、配列 numbers がいくつの要素を持っているかを知るために length プロパティを見ることで、配列を反復処理します。その際それぞれの値は 2 倍されます。
var numbers = [1, 2, 3, 4, 5];
var length = numbers.length;
for (var i = 0; i < length; i++) {
numbers[i] *= 2;
}
// numbers は [2, 4, 6, 8, 10] となった
配列の短縮
以下の例は配列 numbers の要素数が 3 より大きいかどうかを調べて、大きいならその length を 3 としています。
var numbers = [1, 2, 3, 4, 5];
if (numbers.length > 3) {
numbers.length = 3;
}
console.log(numbers); // [1, 2, 3]
console.log(numbers.length); // 3
Create empty array of fixed length
var numbers = []; numbers.length = 10; console.log(numbers); // [empty × 10]
仕様書
ブラウザーの互換性
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。
Update compatibility data on GitHub
| デスクトップ | モバイル | サーバー | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
length | Chrome 完全対応 あり | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 あり | Opera 完全対応 あり | Safari 完全対応 あり | WebView Android 完全対応 あり | Chrome Android 完全対応 あり | Firefox Android 完全対応 4 | Opera Android 完全対応 あり | Safari iOS 完全対応 あり | Samsung Internet Android 完全対応 あり | nodejs 完全対応 あり |
凡例
- 完全対応
- 完全対応