javascript 値が連続した配列を1行で作成する

javascript 値が連続した配列を1行で作成する

javascriptで、値「0 1 2 3 …」といった連続した配列を1行で作成するサンプルコードを記述してます。「apply」と「map」を使用します。「fill」と「map」を使用するやり方もあります。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 108.0.5359.125

配列作成

「apply」で長さを指定して「map」を使用すれば、たった1行で連続した値の配列を作成することが可能です。

// 0~9 までの連続した配列を作成
console.log(
  Array.apply(null, {length: 10}).map((v, index) => index)
);

//  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

開始位置は「map」で演算することで調整できます。

console.log(
  Array.apply(null, {length: 10}).map((v, index) => index + 100 )
);

// [100, 101, 102, 103, 104, 105, 106, 107, 108, 109]

全ての値を2倍にしたい場合は、以下となります。

console.log(
  Array.apply(null, {length: 10}).map((v, index) => index * 2)
);

// [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

以下のよう「fill」を使用しても、同じことが可能です。

console.log(
  Array(10).fill().map((v, index) => index)
);

//  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

console.log(
  Array(10).fill().map((v, index) => index + 1)
);

//  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

パフォーマンスは「apply」を使用したほうがいいです。

ちなみに、スプレッド構文とMapを使用しても、同じことが可能です。

console.log([...Array(10)].map( (x, i) => i + 1 ));

// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for文を使用

1行ではないですが、for文を使用して作成することもできます。

arr = [];

for (i = 0; i < 10; i++) {
    arr.push(i);
}

console.log(arr);
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

全てture

また、例えば全ての配列の値を「true」にしたい場合は、以下のようにすることで可能です。

console.log([...Array(5)].map( () => true ));

// [true, true, true, true, true]