Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.07.2022, 11:01
Аспирант
Отправить личное сообщение для Olga27 Посмотреть профиль Найти все сообщения от Olga27
 
Регистрация: 10.06.2021
Сообщений: 49

Как создать двухмерный массив и заполнить его?
Мне нужно создать двухмерный массив и заполнить его. Только этот массив с координатами, вот такого формата: {x:0,y:0}. При попытке сделать вот так:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Arc</title>
<script>
window.onload = function()
{
var i, j;

CircleArray = [];

var canvas = document.getElementById("drawingCanvas");
var context = canvas.getContext("2d");
context.beginPath();
context.arc(75, 75, 5, 0, 2 * Math.PI);
context.stroke();

CircleArray = [];
CircleArray.length = 15; 

for (var i = 0; i < CircleArray.length; i++) {
    CircleArray[i] = [{x:0,y:0}];
    CircleArray[i].length = 15; 
}

console.log(CircleArray);


init();



function init()
{
  zc = - 144;
  for (var i = 0; i < 15; i++)
  {
    for (var j = 0; j < 15; j++)
    {
        CircleArray[i][j].x = 50;
        CircleArray[i][j].y = 50;
        
        
    }
  }
}


}
</script>
</head>
<body>
<canvas id="drawingCanvas" width="500" height="400"></canvas>
</body>
</html>

Выдает ошибку:
line.html:41 Uncaught TypeError: Cannot set property 'x' of undefined
Ответить с цитированием
  #2 (permalink)  
Старый 18.07.2022, 11:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Olga27,
<!DOCTYPE HTML>
<html>

<head>
    <meta charset="utf-8">
    <title>Arc</title>
    <script>
     window.addEventListener("load", function() {
      let canvas = document.getElementById("drawingCanvas");
            let context = canvas.getContext("2d");
            context.beginPath();
            context.arc(75, 75, 5, 0, 2 * Math.PI);
            context.stroke();
            let length = 15,
                obj = { x: 0, y: 0};
            let CircleArray = Array(length).fill(Array(length).fill({ ...obj}));
            console.log(CircleArray);
            })
    </script>
</head>

<body>
    <canvas id="drawingCanvas" width="500" height="400"></canvas>
</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 18.07.2022, 12:47
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от Olga27
Выдает ошибку
Нужно добавлять создание массива... Ну и с объектом так же поработать.
function init(){
  zc = - 144;
  for (var i = 0; i < 15; i++){
	CircleArray[i] = [];
    for (var j = 0; j < 15; j++){
        CircleArray[i][j] = {x: 50, y: 50};
    }
  }
}

Последний раз редактировалось ksa, 18.07.2022 в 12:50.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив не вставляется в группу. Как обойти это ограничение? Sauron Общие вопросы Javascript 0 20.01.2020 22:58
Как минимумом операций заполнить или лучше сразу объявить массив ц.чисел от X до Y? Svorg Общие вопросы Javascript 28 16.11.2018 21:10
Как передать в массив перемеенную как ключ массива? фдуч Общие вопросы Javascript 15 11.01.2018 21:21
Как заполнить двухмерный массив произвольными номерами цветов (рандомно) Tungusv Events/DOM/Window 28 07.11.2017 20:18
Как создать цитатник? WGN Общие вопросы Javascript 10 29.01.2017 01:39