создание 2d-массива в JavaScript

#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)