Как создать многомерный массив и записать туда данные?
Здравствуйте, нужно создать многомерный массив и записать туда данные сделать это напрямую, вот так не получается.
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, время: 05:22. |