[英]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.