ジャバスクリプトKatas



イントロ🌐
問題解決は、あなたのキャリアと一般的にあなたの人生のために重要なスキルです.
だからこそ、私はすべてのレベルの興味深いカタを取る、それらをカスタマイズし、それらを解決する方法を説明します.

運動の理解❗
まず、運動を理解する必要があります!
あなたがそれを理解していない場合は、それを解決することはできません!
私の個人的方法
  • 入力:何を入れますか?
  • 出力:私は何を取得したいですか?

  • 今日の運動
    今日、別7 kyu カタ
    私たちは少し難易度を高める意味.
    ソースCodewars
    関数を書き込むdrawChessboard , これは2つのパラメータを受け取ります:rows and columns .
    与えられるrows 例えば.3 , とcolumns 例えば.3 ,
    chessboardを2次元配列として返します.
    [
      [ "O", "X", "O" ],
      [ "X", "O", "X" ],
      [ "O", "X", "O" ]
    ]
    
    ホワイトは"O" , ブラックバイ"X" , 最初の行は"O" .
    入力:2つの数字.
    出力配列の配列.

    解決策を考える💭
    私は運動(=私が関数に入れたものと私がそれから得たいもの)を理解すると思います.
    今、私は入力から出力に得る特定のステップを必要とします.
    私は小さい赤ちゃんステップでこれをしようとします:
  • 正しい長さを持つ行を作成するcolumns ) で始まる"O"
  • 正しい長さを持つ行を作成するcolumns ) で始まる"X"
  • これが十分になるまでrows ) 行
  • 配列の配列を返します.
  • 例:
  • 入力3, 3
  • 正しい長さを持つ行を作成するcolumns ) で始まる"O" : [ "O", "X", "O" ]
  • 正しい長さを持つ行を作成するcolumns ) で始まる"X" : [ "X", "O", "X" ]
  • これが十分になるまでrows ) 行:1追加行(=> 3 - 2 = 1) : [ "O", "X", "O" ]
  • 配列の配列を返します.[ [ "O", "X", "O" ], [ "X", "O", "X" ], [ "O", "X", "O" ]]
  • 出力:[ [ "O", "X", "O" ], [ "X", "O", "X" ], [ "O", "X", "O" ]]

  • 実装⛑
    function drawChessboard(rows, columns) {
      // Create an empty board with the correct amount of rows
      const board = [...Array(rows)].map((_) => []);
    
      // Create a row with the correct length that starts with "O"
      const rowO = [...Array(columns)].map((_, i) => (i % 2 ? "X" : "O"));
    
      // Create a row with the correct length that starts with "X"
      const rowX = [...Array(columns)].map((_, i) => (i % 2 ? "O" : "X"));
    
      // Add the proper row to each board row
      return board.map((_, i) => (i % 2 ? rowX : rowO));
    }
    

    結果
    console.log(drawChessboard(3, 3));
    /*
    [
      [ "O", "X", "O" ],
      [ "X", "O", "X" ],
      [ "O", "X", "O" ]
    ]
    */
    // ✅
    
    console.log(drawChessboard(2, 4));
    /*
    [
      [ "O", "X", "O", "X" ],
      [ "X", "O", "X", "O" ]
    ]
    */
    //  ✅
    

    実装(暗黙のうち)⛑
    function drawChessboard(rows, columns) {
      return [...Array(rows)]
        .map((_) => [])
        .map((_, i) =>
          i % 2
            ? [...Array(columns)].map((_, i) => (i % 2 ? "O" : "X"))
            : [...Array(columns)].map((_, i) => (i % 2 ? "X" : "O"))
        );
    }
    

    結果
    console.log(drawChessboard(3, 3));
    /*
    [
      [ "O", "X", "O" ],
      [ "X", "O", "X" ],
      [ "O", "X", "O" ]
    ]
    */
    // ✅
    
    console.log(drawChessboard(2, 4));
    /*
    [
      [ "O", "X", "O", "X" ],
      [ "X", "O", "X", "O" ]
    ]
    */
    //  ✅
    

    遊び場⚽
    あなたはコードで遊ぶことができますhere

    次部分➡️
    大仕事!
    使い方を学んだ... , Array , map .
    私はあなたがより簡単に問題を解決するためにあなたの新しい学習を使用できることを願って!
    次回は別の面白いカタを解決します.ステイ!
    私は特定のカタを解決する必要がある場合は、私にメッセージを撮影here .
    あなたが私の最新のものを読みたいならば.get in touch with me!

    更なる読書📖
  • ...
  • Array
  • map

  • 質問❔
  • どのくらいの頻度でカタをしますか.
  • どの実装が好きですか.なぜ?
  • 任意の代替ソリューション?