2015-10-20 45 views
-1

這裏是我的代碼:的JavaScript。加入不工作

board = []; 

var rowsNum = 5; 
var colsNum = 5; 

function printBoard(board) { 
    for (row in board) { 
     document.write(" ").join(row); 
    } 
} 

function clearAndRestartBoard() { 
    board = []; 
    for (i = 0; i < rowsNum; i++) { 
     board.push("[ ]" * colsNum); 
     } 
} 

printBoard(board);  

它不會拋出一個錯誤,但它並不在我的網頁上顯示出來。你知道我做錯了什麼嗎?

以防萬一,這裏是沒有的CSS的HTML:

<!DOCTYPE html> 
<html> 
    <head> 
     <link href="test.css" type="text/css"rel="stylesheet" /> 
     <title> Test! </title> 
    </head> 
    <body> 
     <p id = "script"> <script src = "test.js"> </script> </p> 
    </body> 
</html> 

我是很新的JS所以非常感謝你的幫助!

+0

你'board'變量是一個空數組。然後'「[]」* colsNum'不符合你的想法。 – zerkms

+0

你到底想做什麼? – iplus26

+0

https://jsfiddle.net/arunpjohny/h294wre3/1/ –

回答

6

這裏有幾個問題,但主要的是你永遠不會打電話clearAndRestartBoard,所以board是空的,所以你永遠不會輸出任何東西。

這裏的一切,我看到過的,袖口的問題的列表:

  1. 你永遠不會調用clearAndRestartBoard

  2. 您的代碼正在墮入The Horror of Implicit Globals:聲明您的變量。您正在使用for-in來遍歷數組。這通常不是一個好主意,儘管可能有用例; this answer概述了循環訪問數組的各種選項。

  3. "[ ]" * colsNumNaN,因爲*會將其兩個操作數轉換爲數字,然後進行數學乘法。字符串"[ ]"轉換爲NaN,因爲它不能被解釋爲一個數字,然後乘以NaN的任何東西是NaN。它不是colsNum空白陣列。要做到這一點,你必須有第二個循環創建行數組,將"[ ]"放入它們中,並將這些行數組推入board。您正在使用document.write。雖然這可以用於簡單的實驗,但這不是您想要使用的一般情況。

  4. 你打電話join上的document.write的結果,我相當肯定不是數組。

  5. 我也建議你要麼使用全球董事會,或總是把它作爲一個參數,而不是混合和匹配,其中一個功能使用全局和其他用途的說法。

  6. 您從不在行之間輸出換行符。

這裏有一個最小的更新,解決這些:

var board; 
 

 
var rowsNum = 5; 
 
var colsNum = 5; 
 

 
function printBoard(board) { 
 
    board.forEach(function(row) { 
 
    document.write(row.join("")); 
 
    document.write("<br>"); 
 
    }); 
 
} 
 

 
function clearAndRestartBoard() { 
 
    var row; 
 
    board = []; 
 
    for (var r = 0; r < rowsNum; r++) { 
 
    row = []; 
 
    for (var c = 0; c < colsNum; c++) { 
 
     row.push("[ ]"); // If you really wanted the string [ ] 
 
    } 
 
    board.push(row); 
 
    } 
 
} 
 

 
clearAndRestartBoard(); 
 
printBoard(board);

+0

OMG!我完全犯了很多錯誤!請大家幫忙,很快我會好起來的。 JS肯定是不同的蟒蛇! – Demandooda

+0

@Demandooda:犯錯誤是學習某些東西的不可避免的部分。 :-) –