1D массив в 2D массив в Javascript

1

Поэтому в моем javascript у меня есть огромный массив 1D, и я хочу преобразовать его в 2D-массив. Это то, что я до сих пор, но, похоже, не работает.

    var arrLines = strRawContents.split(",");
    var array2;
    for (int i = 0; i < 98; i++) {
        for (int j = 0; j < 5; j++) {
            array2[i][j] = arrLines[(j * 98) + i];
        }
    }
    return arrLines
    }

Это то, что я сейчас имею, где я пытаюсь сделать 98 строк и в каждой строке, есть 5 столбцов. Моя цель сложная. Если мой 1D-массив должен был быть [1,2,3,4,5,6,7,8,9,10 и т.д.], Мой 2D-массив в [0] [0] должен быть равен 1, [0] [1] должно быть 2 и так далее, пока [0] [7] не будет 8, тогда [1] [0] будет 9, [1] [1] будет 10 и так далее.

Теги:
arrays

1 ответ

1
Лучший ответ

В каждом внешнем цикле создайте массив. Во внутреннем цикле вставьте содержимое в него, в конце внешнего цикла, нажмите этот вновь созданный массив в последний 2-й массив.

var arrLines = strRawContents.split(",");
var array2 = [];
for (var i = 0; i < 98; i++) {
  var arr = [];
  for (var j = 0; j < 5; j++) {
    arr.push(arrLines[(i * 5) + j]);
  }
  array2.push(arr);
}
return arr2;

Некоторые ошибки в исходном коде:

  1. Вам нужно инициализировать array2 как пустой массив.
  2. В JavaScript нет ключевого слова int. Используйте var или let (let предпочтительнее, но не все браузеры поддерживают его еще.
  3. Формула должна быть (i * 5) + j not (j * 98) + i.
  4. Возвращаемое значение должно быть array2.
  • 0
    Спасибо, это очень полезно. Но для имеющейся у меня двумерной переменной я хочу, чтобы первый массив, например, (0) был строкой, а следующие 6 элементов будут столбцом. И затем это повторяется с 7-ым массивом, являющимся следующей строкой и затем 6 пунктами после этого, являющимся его столбцом. Есть ли способ сделать это, я был бы очень признателен за помощь!
  • 0
    Я не понимаю ваш комментарий здесь. Не могли бы вы обновить свой вопрос, чтобы проиллюстрировать ожидаемый результат на примере?
Показать ещё 4 комментария

Ещё вопросы

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