配列リテラル・[ new ] Array()【コンストラクタ】

メモ

  • 配列オブジェクトの生成
  • 同一次元の要素数が違うジャグ配列の生成も可能
  • リテラル指定の最後がカンマのみの場合、無視 (C言語系と同様)
    (但し、環境によっては有効値 または エラー)
  • 構文2で数値が1つの配列を生成しようと意図すると、構文3と認識されるので注意
  • 連想配列については、[ new ] Object()【コンストラクタ】を参照

構文

(1) [ [ item00 ] , [ item01 ] , [ … ] ]【リテラル 指定】
(2) [ new ] Array ( [ item0 [ , item1 [ , … ] ] ] ) 【配列要素 指定】
(3) [ new ] Array ( len )【配列要素数 指定】

  • item00~:配列要素
  • item0~:配列要素 (構文 (3) 以外)
  • len:配列要素数

作成された配列 オブジェクト

RangeError 例外:len【配列要素数】が符号なし32ビット整数 (0 ~ 232-1)の範囲外

var array;

array = [1, 2, 3];
console.log(array.length, array);           // 出力:3 [1, 2, 3]

array = [ [1], [2, 3], [4, 5, 6] ];
console.log(array.length, array);           // 出力:3 [Array[1], Array[2], Array[3]]
console.log(array[0], array[1], array[2]);  // 出力:[1] [2, 3] [4, 5, 6]

array = Array(1, 2, 3);
console.log(array.length, array);           // 出力:[1, 2, 3]

array = Array([1], [2, 3], [4, 5, 6]);
console.log(array.length, array);           // 出力:3 [Array[1], Array[2], Array[3]]
console.log(array[0], array[1], array[2]);  // 出力:[1] [2, 3] [4, 5, 6]

array = new Array(1, 2, 3);
console.log(array.length, array);           // 出力:[1, 2, 3]

array = new Array([1], [2, 3], [4, 5, 6]);
console.log(array.length, array);           // 出力:3 [Array[1], Array[2], Array[3]]
console.log(array[0], array[1], array[2]);  // 出力:[1] [2, 3] [4, 5, 6]

array = Array(3);
array[0] = [1];
array[1] = [2, 3];
array[2] = [4, 5, 6];
console.log(array.length, array);           // 出力:3 [Array[1], Array[2], Array[3]]
console.log(array[0], array[1], array[2]);  // 出力:[1] [2, 3] [4, 5, 6]

array = new Array(3);
array[0] = [1];
array[1] = [2, 3];
array[2] = [4, 5, 6];
console.log(array.length, array);           // 出力:3 [Array[1], Array[2], Array[3]]
console.log(array[0], array[1], array[2]);  // 出力:[1] [2, 3] [4, 5, 6]

array = [];
console.log(array.length, array);           // 出力:0 []

array = [, 2, ,4 , ];
console.log(array.length, array);           // 出力:4 [1:2, 3:4] 環境によっては最後のカンマが有効 または エラー

関連