Создайте трехмерный массив и присвойте ему значение в Javascript

1

Я попытался создать 3-мерный массив и присвоить ему значение, основываясь на ответе здесь, создавая и анализируя 3D-массив в javascript? ,

var myArr = new Array(new Array(new Array()));

myArr[0][0][0] = "1";
myArr[0][0][1] = "2";
myArr[0][1][0] = "2";
myArr[0][1][1] = "2";
myArr[0][2][0] = "3";
myArr[0][2][1] = "4";

но я получаю это

Uncaught Typeerror: Невозможно установить propterty '0' undefined ".

Нужна помощь.

Спасибо

  • 0
    Проблема в том, что var myArr = new Array(new Array(new Array())); переводится в myArr[0][0] = [ ] что означает, что при попытке доступа к myArr[0][1] вы получаете неопределенный объект, поскольку фактически вы никогда не создавали массив с этим индексом.
  • 2
    В JS нет многомерных массивов, вы можете эмулировать их только с помощью вложенных массивов. Это означает, что вы должны определить каждый элемент отдельно как подмассив.
Показать ещё 2 комментария
Теги:
arrays

2 ответа

1

В javascript нет инициативных переменных, и шаг компиляции просто поднимает определения переменных и функций верхнего уровня, а в ES6 - статические импорт и экспорт (хотя это еще не поддерживается) [Patrick Roberts]. Еще один вариант

var myArr = new Array();
myArr[0] = new Array();
myArr[0][0] = new Array();
myArr[0][0][0] = "1";
myArr[0][0][1] = "2";
myArr[0][1] = new Array();
myArr[0][1][0] = "2";
myArr[0][1][1] = "2";
myArr[0][2] = new Array();
myArr[0][2][0] = "3";
myArr[0][2][1] = "4";
  • 0
    извини я имел ввиду java скрипт, исправление
  • 1
    Технически есть время компиляции, так как это язык, скомпилированный JIT. На этапе компиляции просто выводятся определения переменных и функций верхнего уровня, а в ES6 выполняется статический импорт и экспорт (хотя это пока не поддерживается изначально).
Показать ещё 2 комментария
0

Вы можете сделать это (но создание 3d-массива в javascript - это более завершенный материал. Пожалуйста, подумайте об изменении вашего подхода к обработке данных):

var myArr = new Array();
myArr[0] = new Array();
myArr[0][0] = new Array();
myArr[0][0][0] = "1";
myArr[0][0][1] = "2";
myArr[0][1] = new Array();
myArr[0][1][0] = "2";
myArr[0][1][1] = "2";
myArr[0][2] = new Array();
myArr[0][2][0] = "3";
myArr[0][2][1] = "4";

console.log(myArr[0][2][0]);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню