Как создать многомерный массив и записать туда данные?
Здравствуйте, нужно создать многомерный массив и записать туда данные сделать это напрямую, вот так не получается.
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; |
Katy93,
let length = 101, l = 4; let arr = Array.from({length}, (_, i) => Array(l).fill(++i)); console.log(arr) |
Katy93, нужно хоть немного почитать учебник...
https://learn.javascript.ru/array И вот там есть про многомерные массивы. ;) https://learn.javascript.ru/array#mnogomernye-massivy |
Katy93, в js не существует многомерных массивов как таковых. Можно просто сделать массив из массивов. Выглядеть оно будет такаже при работе, но возникает нюанс: чтобы в массиве лежал массив - его надо туда положить:
let arr = []; // обычный массив let arr[0] = []; // массив в котором по индексу 0 лежит другой массив arr[0][0]=1; // работаем с этой конструкцией как с многомерным массивом |
Как теперь переписать созданный массив, почему-то только первые несколько элементов массива заменяются, а остальные данные остаются от старого массива, вот пример кода.
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); } |
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]. |
Katy93, еще раз напомню про таки "почитать учебник"... ;)
|
Все разобралась более простой способ создания многомерного массива.
let arr = new Array(768); for (var i = 0; i < arr.length; i++) { arr[i] = new Array(4); } |
Часовой пояс GMT +3, время: 00:03. |