Eloquent JavaScript chessboard Is this a good way to solve the quiz "Chessboard" from http://eloquentjavascript.net/02_program_structure.html ?


  Write a program that creates a string that represents an 8×8 grid, using newline characters to separate lines. At each position of the grid there is either a space or a “#” character. The characters should form a chess board.
  
  When you have a program that generates this pattern, define a variable size = 8 and change the program so that it works for any size, outputting a grid of the given width and height.


This is my code: 



 size = 10; 
    
    grid = ""
    
    for (var i = 1; i &lt;= size; i++) {
      for (var j = 1; j &lt;= size; j++) {
        if (i % 2 === 0) {
         grid+= "# "
        } else {
         grid+= " #"
        }
      }
      grid+= "\n"
    }
    
    
    console.log(grid)
Fun question;


you should write a function that takes a parameter instead of just writing the code
A chessboard has lots of repetition, take a minute to ponder how String.repeat could make this code much simpler.
Your indentation is not perfect, consider using a site like http://jsbeautifier.org/
I am not a big fan of var within the loop, I would declare var up front.


This is a possible solution that provides the right size of the board:

function createChessboardString(size){

  const line = ' #'.repeat( size ),
        even = line.substring(0,size),
        odd = line.substring(1,size+1);
  let   out = '';

  while(size--){
    out = out + ((size % 2) ? odd: even ) + '\n';
  }

 return out;
}

console.log(createChessboardString(8));


You could consider for very large boards that the board in essence repeats 
odd + '\n' + even, so you could repeat that as well. The problem for me is that there are too many corner cases to consider. So personally I would go for the above for any board size &lt; 1000.