Двумерный массив в JavaScript представляет собой массив, элементами которого являются другие массивы. Он используется для хранения и организации данных в виде таблицы или сетки, где данные сгруппированы по строкам и столбцам. Если у вас есть двумерный массив и вы хотите его развернуть, то это означает, что вы хотите поменять местами строки и столбцы массива.
Для развертки двумерного массива в JavaScript можно использовать несколько подходов. Рассмотрим два наиболее часто используемых метода:
1. Использование циклов:
Создайте новый двумерный массив с обратной структурой, где строки станут столбцами и наоборот. Затем, используя два цикла, переберите исходный массив и скопируйте элементы на соответствующую позицию в новом массиве.
Пример кода:
function reverseArray(arr) { var rows = arr.length; var cols = arr[0].length; var reversedArray = []; for (var i = 0; i < cols; i++) { reversedArray[i] = []; for (var j = 0; j < rows; j++) { reversedArray[i][j] = arr[j][i]; } } return reversedArray; } // Пример использования var originalArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; var reversedArray = reverseArray(originalArray); console.log(reversedArray); // Вывод: // [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
2. Использование метода map
:
Метод map
позволяет применить функцию к каждому элементу массива и создать новый массив из результатов. Вы можете использовать map
для применения другого метода map
к исходному массиву, чтобы поменять местами строки и столбцы.
Пример кода:
function reverseArray(arr) { return arr[0].map((_, i) => arr.map(row => row[i])); } // Пример использования var originalArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; var reversedArray = reverseArray(originalArray); console.log(reversedArray); // Вывод: // [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Оба эти способа позволяют развернуть двумерный массив, но выбор метода зависит от ваших предпочтений и требований проекта. Циклы дают большую гибкость и контроль над процессом, в то время как метод map
позволяет написать более компактный и изящный код. В любом случае, оба решения являются эффективными и могут быть легко адаптированы к конкретным потребностям.