#javascript #html
#javascript #HTML
Вопрос:
Я новичок в js и пытаюсь создать 2D-массив, но когда я запускаю код, который я получаю в консоли Array(10) [ <10 empty slots> ]
, хотя я заполнил массив значениями.
Это мой js и HTML:
function Make2Darray(cols, rows) {
let arr = new Array(cols);
for (let i = 0; i < arr.lenght; i ) {
arr[i] = new Array(rows);
for (let j = 0; j < rows; j ) {
arr[i][j] = floor(random(2));
}
}
return arr;
}
let grid;
grid = Make2Darray(10, 10);
console.log(grid);
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Game of Life</title>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/p5@1.1.9/lib/p5.min.js"></script>
<script type="text/javascript" src="gol.js"></script>
</head>
<body>
</body>
</html>
Комментарии:
1. Опечатка, ее
length
нетlenght
2. В строке 3 в части javascript это должно быть
arr.length
.
Ответ №1:
Вы допустили 2 ошибки: одну в 3-й строке, это не arr.length
то, что вам нужно, но cols
тогда floor и random являются частями математической библиотеки, предоставляемой JS, поэтому используйте ее следующим образом:
arr[i][j] = Math.floor(Math.random() * 2);
Комментарии:
1. OP означает Math.random()*2. Math.random принимает 0 аргументов. MDN
2. Да, я просто скопировал его код и не заметил этого, я отредактировал
3. Вы уверены
floor
иrandom
не предоставлены p5.js ? Потому что в сниппете нет ошибок…4. GJ я не видел, чтобы P5 включал
Ответ №2:
Я не уверен, что вы пытаетесь сделать с floor(random(2))
part, но вы можете создать 2D-массив, как показано ниже:
function Make2Darray(rows, cols) {
let arr = []
for (let i = 0; i < rows; i ) {
arr[i] = []
for (let j = 0; j < cols; j ) {
arr[i][j] = Math.floor(Math.random()) // You can change the value in this part
}
}
return arr
}
let grid = Make2Darray(10, 10)
console.log(grid)