2017-02-04 2 views
0

Hier ist der Code für die Herstellung eines 2d-Array als ein Brett für Conways Spiel des Lebens in node.js verwendet werden. Ich habe ein Problem mit der Anzeige des Boards. Die Ausgabe sieht so aus.Knoten js zeigt ein 2d-Array als Gitter

['-','-','-'] 
['-','-','-'] 
['-','-','-'] 

aber ich will es wie dieses Recht jetzt

--- 
--- 
--- 

dies der Code suchen. Hat jemand irgendwelche Vorschläge?

var createBoard = (width, height) => { 
    board = []; 
    row = []; 
    for (var i = 0; i < width; i++) { 
     for (var j = 0; j < height; j++) { 
      row.push("-"); 
     } 
     board.push(row); 
     row =[]; 
    } 
    return (board); 
} 

var displayBoard = (board) =>{ 
    for (var i = 0; i < board.length; i++) { 
     console.log(board[i]); 
    } 
} 

gameBoard = createBoard(3,3); 
displayBoard(gameBoard); 

Antwort

1

Sie müssen join die Elemente des Arrays, um eine Zeichenfolge zu bilden.

var createBoard = (width, height) => { 
 
    board = []; 
 
    row = []; 
 
    for (var i = 0; i < width; i++) { 
 
     for (var j = 0; j < height; j++) { 
 
      row.push("-"); 
 
     } 
 
     board.push(row); 
 
     row = []; 
 
    } 
 
    return (board); 
 
} 
 

 
var displayBoard = (board) => { 
 
    for (var i = 0; i < board.length; i++) { 
 
     console.log(board[i].join("")); 
 
    } 
 
} 
 

 
gameBoard = createBoard(3, 3); 
 
displayBoard(gameBoard);

+0

danke das hat perfekt funktioniert :) – charlie2104

0

Ihr Problem zu beheben, sollten Sie über das Array durchlaufen und es in einen String hinzufügen, wie folgt aus:

var displayBoard = (board) =>{ 
    var buffer = ''; 
    for (var i = 0; i < board.length; i++) { 
     for (var x = 0; x < board[i].length; x++) { 
     buffer += board[i][x]; 
     } 
     buffer += '\n'; 
    } 
    console.log(buffer); 
} 

Das es so gedruckt werden soll:

--- 
--- 
---