Двумерный массив в JavaScript: методы и техники манипулирования сеточными данными

В JavaScript двумерный массив по сути представляет собой массив массивов. Он позволяет хранить данные и манипулировать ими в виде сетки. Вот несколько методов и приемов, связанных с работой с двумерными массивами в JavaScript:

  1. Создание двумерного массива:

    • Использование литерала вложенного массива: const array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
    • Использование цикла для инициализации массива:
      const rows = 3;
      const cols = 3;
      const array = [];
      for (let i = 0; i < rows; i++) {
       array[i] = [];
       for (let j = 0; j < cols; j++) {
           array[i][j] = i * cols + j + 1;
       }
      }
  2. Доступ к значениям:

    • Доступ к определенному элементу: const value = array[rowIndex][colIndex];
  3. Изменение значений:

    • Изменение определенного элемента: array[rowIndex][colIndex] = newValue;
  4. Итерация по двумерному массиву:

    • Использование вложенных циклов:
      for (let i = 0; i < array.length; i++) {
       for (let j = 0; j < array[i].length; j++) {
           // Access and manipulate each element of the array
           const value = array[i][j];
           // ...
       }
      }
  5. Определение количества строк и столбцов:

    • Получение количества строк: const numRows = array.length;
    • Получение количества столбцов в определенной строке: const numCols = array[rowIndex].length;
  6. Поиск и обработка данных:

    • Поиск определенного значения:
      function findValue(array, targetValue) {
       for (let i = 0; i < array.length; i++) {
           for (let j = 0; j < array[i].length; j++) {
               if (array[i][j] === targetValue) {
                   return { row: i, col: j };
               }
           }
       }
       return null; // Value not found
      }
    • Управление данными с помощью методов массива, таких как map(), filter(), reduce()и т. д.
  7. Транспонирование двумерного массива:

    • Поменять местами строки и столбцы:
      function transposeArray(array) {
       return array[0].map((col, i) => array.map(row => row[i]));
      }