0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Array(10).keys()でスマートに連続数を出力する方法

Last updated at Posted at 2025-03-22

1〜10を1行で出力する問題」。最初は for ループでやったけど、もっとスッキリ書ける方法があった!

この技術メモでは、 Array(10).keys() を使った最適解をサクッと解説します。


🔍 問題概要

1 2 3 4 5 6 7 8 9 10 」と出力する。ただし、

  • 間に半角スペースを入れる
  • 最後に半角スペース+改行を入れる
  • 余計な文字や空行はNG


❌ NGコード

for (let i = 1; i <= 10; i++) {
    console.log(i + " ");
}

問題点:

  • console.log() は 自動的に改行を入れる → 1行にならない!
  • 余計な空行が発生する


✅ OKコード(forループ版)

for (let i = 1; i <= 10; i++){
    if(i !== 10){
        process.stdout.write(`${i} `);
    } else {
        process.stdout.write(i + " \n");
    }
}

👍 改善ポイント:

  • process.stdout.write() を使うことで 改行なしの出力 を実現
  • 最後の要素だけ スペース+改行を加える処理 を入れる


✅ OKコード(スマートな解法)

console.log([...Array(10).keys()].map(i => i + 1).join(" ") + " ");

解説:

  • Array(10) → 長さ10の空の配列 を作成
  • .keys() → インデックス(0〜9)を取得
  • map(i => i + 1) → 1〜10の配列を作る
  • join(" ") → 半角スペース区切りの文字列に変換
  • + " " → 最後にスペースを追加して改行を入れる


🎯 おまけ: シンプル版(最後のスペース不要)

console.log([...Array(10).keys()].map(i => i + 1).join(" "));


🚀 まとめ

process.stdout.write() を使えば改行なしの出力が可能
join(" ") は「間にスペースを入れて1行にする」時に便利
✅ スプレッド構文 ....keys() で簡単に連番を作れる


僕の失敗談と解決話!

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?