Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.01.2022, 15:28
Кандидат Javascript-наук
Отправить личное сообщение для Katy93 Посмотреть профиль Найти все сообщения от Katy93
 
Регистрация: 28.12.2018
Сообщений: 138

Как создать многомерный массив и записать туда данные?
Здравствуйте, нужно создать многомерный массив и записать туда данные сделать это напрямую, вот так не получается.
arr[0][0]=1; Выдает ошибку

Uncaught TypeError: Cannot set property '0' of undefined

Предположительно массив нужно создать, я пробовола вот так let arr = []; Все равно ошибка. Как создать массив мне нужно занести данные.

arr[0][0]=1;
arr[0][1]=1;
arr[0][2]=1;
arr[0][3]=1;

arr[1][0]=2;
arr[1][1]=2;
arr[1][2]=2;
arr[1][3]=2;

arr[2][0]=3;
arr[2][1]=3;
arr[2][2]=3;
arr[2][3]=3;

....


arr[100][0]=100;
arr[100][1]=100;
arr[100][2]=100;
arr[100][3]=100;
Ответить с цитированием
  #2 (permalink)  
Старый 03.01.2022, 16:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Katy93,
let length = 101, l = 4;
let arr = Array.from({length}, (_, i) => Array(l).fill(++i));
console.log(arr)
Ответить с цитированием
  #3 (permalink)  
Старый 03.01.2022, 17:09
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Katy93, нужно хоть немного почитать учебник...
https://learn.javascript.ru/array
И вот там есть про многомерные массивы.
https://learn.javascript.ru/array#mnogomernye-massivy
Ответить с цитированием
  #4 (permalink)  
Старый 03.01.2022, 20:47
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Katy93, в js не существует многомерных массивов как таковых. Можно просто сделать массив из массивов. Выглядеть оно будет такаже при работе, но возникает нюанс: чтобы в массиве лежал массив - его надо туда положить:
let arr = []; // обычный массив
let arr[0] = []; // массив в котором по индексу 0 лежит другой массив 
arr[0][0]=1; // работаем с этой конструкцией как с многомерным массивом
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 03.01.2022, 21:14
Кандидат Javascript-наук
Отправить личное сообщение для Katy93 Посмотреть профиль Найти все сообщения от Katy93
 
Регистрация: 28.12.2018
Сообщений: 138

Как теперь переписать созданный массив, почему-то только первые несколько элементов массива заменяются, а остальные данные остаются от старого массива, вот пример кода.
let length = 101, l = 4;
let arr5 = Array.from({length}, (_, i) => Array(l).fill(++i));


    


 testObj = function()
    {

      
      this.add1 = function(a,b,c,d)
      {
      
        hsize++;
        arr5[hsize-1,0]=a;
        arr5[hsize-1,1]=b;
        arr5[hsize-1,2]=c;
        arr5[hsize-1,3]=d;
        
        //console.log(hsize-1);
      }
    }
//Попытка переписать массив
 for(var i = 0; i < 101; i++)
 {
   mx.add1(a1[i],b1[i],c1[i],1);
 }
Ответить с цитированием
  #6 (permalink)  
Старый 03.01.2022, 21:21
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

arr5[hsize-1,0] -> arr5[hsize-1][0]

Ещё раз, в js нет многомерных массивов, есть только массив массивов.
Запись arr5[hsize-1,0] означает arr5[(hsize-1,0)], где (hsize-1,0) возвращает 0 с помощью оператора запятая. Т.е. arr5[hsize-1,0] это то же самое что arr5[0].
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 03.01.2022, 21:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Katy93, еще раз напомню про таки "почитать учебник"...
Ответить с цитированием
  #8 (permalink)  
Старый 05.01.2022, 12:08
Кандидат Javascript-наук
Отправить личное сообщение для Katy93 Посмотреть профиль Найти все сообщения от Katy93
 
Регистрация: 28.12.2018
Сообщений: 138

Все разобралась более простой способ создания многомерного массива.
let arr = new Array(768);

for (var i = 0; i < arr.length; i++) {
        arr[i] = new Array(4);
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как спарсить POST данные в Google Plus ChenghisKhan Общие вопросы Javascript 0 16.01.2017 10:31
Как собрать все данные из таблицы, и отправить массив на сервер optsar AJAX и COMET 14 11.12.2015 07:58
Как отобразить данные из базы на форме? ascherbakov AJAX и COMET 2 12.03.2014 15:55
Как создать многомерный пустой или как не создавать. PashPP Общие вопросы Javascript 6 02.08.2012 21:49
ajax и многомерный массив cat9 AJAX и COMET 1 03.10.2010 15:25