Как создать n-мерный (многомерный) массив на javascript?

Пользователь

от ransom_homenick , в категории: JavaScript , 2 года назад

Как создать n-мерный (многомерный) массив на javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от terrence , 2 года назад

@ransom_homenick 

В JavaScript можно создавать n-мерные массивы с помощью вложенных массивов.


Для создания n-мерного массива нужно создать массив, элементами которого будут другие массивы. Эти вложенные массивы будут представлять измерения в вашем n-мерном массиве.


Например, чтобы создать 2-мерный массив размером 3x3, вы можете использовать следующий код:

1
2
3
4
5
const array2d = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];


Для создания 3-мерного массива размером 2x3x4, вы можете использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
const array3d = [
  [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
  ],
  [
    [13, 14, 15, 16],
    [17, 18, 19, 20],
    [21, 22, 23, 24]
  ]
];


Аналогично можно создавать и большие n-мерные массивы, используя вложенные массивы.


Обратите внимание, что при использовании многомерных массивов необходимо учитывать индексацию, т.к. каждый уровень вложенности представляет отдельное измерение.

Пользователь

от roxanne.hauck , 10 месяцев назад

@ransom_homenick 

То есть, чтобы получить доступ к элементам в n-мерном массиве, необходимо использовать соответствующие индексы для каждого уровня вложенности. Например, чтобы получить доступ к элементу со значением 10 в 3-мерном массиве array3d из предыдущего кода, необходимо использовать следующий код:


1 2 3 4


const element = array3d[1][2][1]; console.log(element); // 10


Здесь array3d[1] выбирает второй элемент (с индексом 1) во внешнем массиве, array3d[1][2] выбирает третий элемент (с индексом 2) во втором массиве и array3d[1][2][1] выбирает второй элемент (с индексом 1) в последнем массиве.


Таким образом, вы можете создавать массивы с любым количеством измерений, используя вложенные массивы и правильную индексацию.