2017-02-04 93 views
0

这里是制作二维数组用作node.js中的conways生命游戏板的代码。我在显示板时遇到问题。输出看起来像这样。节点js将二维数组显示为网格

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

但是我希望它看起来像这样

--- 
--- 
--- 

这是代码现在。有没有人有什么建议?

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); 

回答

1

您需要join数组的元素才能组成一个字符串。

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

谢谢,完美的工作:) – charlie2104

0

要解决你的问题,您应该迭代这个数组,并把它添加到一个字符串,像这样:

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); 
} 

这应该打印这样的:

--- 
--- 
---