簡體   English   中英

如何將userInput轉換為數字並使用該數字通過javascript創建所需的結果?

[英]How convert userInput to a number and use that number to create a desired outcome with javascript?

我對javascript非常陌生,我正在嘗試打印出帶有“#”符號的棋盤。 我想問用戶“您希望您的棋盤有多寬?” 當用戶輸入所需的數字時,我想將此字符串轉換為數字,以便可以使用它來創建面板。 例如,如果用戶輸入= 8,則控制台將打印類似(8x8)的圖案:

# # # # # # # #
 # # # # # # # 
# # # # # # # #
 # # # # # # # 
# # # # # # # #
 # # # # # # # 
# # # # # # # #
 # # # # # # # 

這是我到目前為止的內容:

var userInput = prompt("How wide do you want your chessboard to be?")

var userInput = Number(userInput)

var string1 = Array(userInput).join(" #")
var string2 = Array(userInput).join("# ")
var newline = "\n"
var counter = 0.5

var chessboard = function () {
    console.log(string1 + newline + string2);
};

while (counter <= userInput/2) {
    console.log(chessboard);
    counter++
};

問題是您如何調用國際chessboard ,是將一個函數引用傳遞給console.log() ,因此它將記錄該函數。

由於您的chessboard方法會打印字符串,因此只需像這樣調用chessboard方法

while (counter <= userInput/2) {
    chessboard();
    counter++
};

但是這里存在一個邏輯問題,如果用戶輸入7會發生什么,所以

 var elboard = document.getElementById('board'); var userInput = prompt("How wide do you want your chessboard to be?"); var userInput = Number(userInput); var string1 = Array(userInput + 1).join(" #") var string2 = Array(userInput + 1).join("# ") var newline = "\\n" var chessboard = function(i) { var string = i % 2 == 0 ? string1 : string2; console.log(string) elboard.appendChild(document.createTextNode(string + '\\n')); }; for (var i = 0; i < userInput; i++) { chessboard(i); }; 
 #board { white-space: pre; } 
 <div id="board"></div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM