javascript - 我在 JavaScript 中的 setBoard 函数的行和列变量中有一个未定义的值
问题描述
因此,我正在尝试使用 HTML、CSS 和 JavaScript 创建一个扫雷游戏。我的问题是,当我调用输入(存储一个函数)时,结果是我在 setBoard 函数中为我的行和列变量获得了一个未定义的值。但是,getDimensions 函数中的行和列变量不会返回未定义的值,而是返回用户输入的正确值。
let dimensions;
let input = function getDimensions() {
let rows, columns;
rows = document.getElementById("boardRows").value; //The rows variable stores the number of rows that the user enters.
columns = document.getElementById("boardColumns").value; //The columns variable stores the number of columns that the user enters.
//This if-statement will run if there are: more than 30 rows, less than 4 rows, more than 30 columns, or less than 4 columns.
if ((rows > 30) || (rows < 4) || (columns > 30) || (columns < 4)) {
//An alert message is printed to the browser telling the user that the value(s) that they have entered are invalid.
alert("ERROR! The number of rows are: " + rows + " and the number of columns are: " + columns + ". Please" +
"enter your rows and columns between 4 and 40.");
} else {
dimensions = [rows, columns];
alert(rows + " " + columns);
return(dimensions);
}
}
function setBoard() {
let canvas = document.getElementById("canvas");
let rows = input[0];
let columns = input[1];
alert("Here " + rows + " " + columns);
canvas.height = columns * 20;
canvas.width = rows * 20;
}```
解决方案
在您的setBoard()
函数中,您键入let columns = input[1]
了 ,它试图访问input
假设它是一个数组的第二个元素。如果您打算input()
使用参数调用该函数1
,您应该编写let columns = input(1)
.
如果您试图input()
从它返回的数组中调用和访问第二个元素(第一个元素将有一个 index 0
),您可以键入let columns = input()[1]
.
推荐阅读
- python - 使用 Appium 和 Python 进行“包含”的测试自动化
- dataframe - 获取 Julia 数据帧中一行的索引(类似于 iterrows?)
- datetime - 日期格式 - Dataweave
- python - 使用 2 个参数在 df 中创建新列
- swift - 努力弄清楚如何使用 UserDefault 让用户保持登录状态
- python - Django 无法在页面上显示登录错误
- r - 每个列表列中的唯一计数
- python - 将 Pandas 系列转换为保留索引的列表
- c# - 问题转换 json 对象
- javascript - Javascript:如何从给定的 HH:MM:SS 开始秒表?