Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

Array: length

BaselineWidely available

lengthArray インスタンスのデータプロパティで、配列の要素の数を表します。値は符号なし 32 ビット整数で、常に配列の最も大きなインデックスよりも数値的に大きくなります。

試してみましょう

const clothing = ["shoes", "shirts", "socks", "sweaters"];console.log(clothing.length);// Expected output: 4

非負の整数で、 232 未満です。

Array: length のプロパティ属性
書込可能
列挙可能不可
設定可能不可

解説

length プロパティの値は非負の整数で、 232 未満の値です。

js
const listA = [1, 2, 3];const listB = new Array(6);console.log(listA.length);// 3console.log(listB.length);// 6listB.length = 2 ** 32; // 4294967296// RangeError: Invalid array lengthconst listC = new Array(-100); // 負の数は許されない// RangeError: Invalid array length

配列オブジェクトはlength プロパティを監視し、自動的にlength 値を配列のコンテンツと同期させます。これは、次のことを意味します。

  • 新しいlength を超えた要素は削除されます。
  • 配列のインデックス(232 より小さい非負の整数)を現在のlength よりも大きい値に設定するには、配列を拡張します。length プロパティは新しい最も大きいインデックスを反映するように増加します。
  • length に無効な値(例えば、負の数や非整数)を設定すると、RangeError 例外が発生します。

length に現在の長さよりも大きな値を設定すると、配列は実際の値がundefined ではなく、空のスロットを追加することで拡張されます。空のスロットは配列メソッドと特別な対話をします。配列メソッドと空のスロットを参照してください。

js
const arr = [1, 2];console.log(arr);// [ 1, 2 ]arr.length = 5; // 現在 2 の配列の長さを 5 に設定console.log(arr);// [ 1, 2, <3 つの空アイテム> ]arr.forEach((element) => console.log(element));// 1// 2

詳細はlength と数値プロパティとの関係をご覧ください。

配列を反復処理する

以下の例では、配列numbers がいくつの要素を持っているかを知るためにlength プロパティを見ることで、配列を反復処理します。その際それぞれの値は 2 倍されます。

js
const numbers = [1, 2, 3, 4, 5];const length = numbers.length;for (let i = 0; i < length; i++) {  numbers[i] *= 2;}// numbers は [2, 4, 6, 8, 10] となった

配列の短縮

以下の例は配列numbers の要素数が 3 より大きいかどうかを調べて、大きいならそのlength を 3 としています。

js
const numbers = [1, 2, 3, 4, 5];if (numbers.length > 3) {  numbers.length = 3;}console.log(numbers); // [1, 2, 3]console.log(numbers.length); // 3console.log(numbers[3]); // undefined; the extra elements are deleted

固定長の空の配列を作成

length に現在の長さ以上の値を設定すると、疎配列を作成します。

js
const numbers = [];numbers.length = 3;console.log(numbers); // [empty x 3]

length の書き込み不可の配列

length プロパティは、現在の長さを超えて要素が追加されると、配列によって自動的に更新されます。もしlength プロパティを書き込み不可にすると、配列はそれを更新できなくなります。これは厳格モードではエラーが発生します。

js
"use strict";const numbers = [1, 2, 3, 4, 5];Object.defineProperty(numbers, "length", { writable: false });numbers[5] = 6; // TypeError: Cannot assign to read only property 'length' of object '[object Array]'numbers.push(5); // // TypeError: Cannot assign to read only property 'length' of object '[object Array]'

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-properties-of-array-instances-length

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp