TypeScript Array to Matrix: изучение нескольких методов на примерах кода

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

Метод 1: использование вложенных циклов
Один из самых простых способов преобразования массива в матрицу — использование вложенных циклов. Вот пример:

function arrayToMatrix(array: any[], rows: number, columns: number): any[][] {
  const matrix: any[][] = [];
  for (let i = 0; i < rows; i++) {
    const row: any[] = [];
    for (let j = 0; j < columns; j++) {
      const index = i * columns + j;
      if (index < array.length) {
        row.push(array[index]);
      } else {
        break;
      }
    }
    matrix.push(row);
  }
  return matrix;
}
const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const rows = 3;
const columns = 3;
const matrix = arrayToMatrix(array, rows, columns);
console.log(matrix);

Метод 2: использование Array.prototype.reduce()
Другой подход — использовать метод reduce(), доступный для массивов. Вот пример:

function arrayToMatrix(array: any[], rows: number, columns: number): any[][] {
  return array.reduce((matrix: any[][], value: any, index: number) => {
    const rowIndex = Math.floor(index / columns);
    if (!matrix[rowIndex]) {
      matrix[rowIndex] = [];
    }
    matrix[rowIndex].push(value);
    return matrix;
  }, []);
}
const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const rows = 3;
const columns = 3;
const matrix = arrayToMatrix(array, rows, columns);
console.log(matrix);

Метод 3: использование библиотеки (lodash.chunk)
Если вы предпочитаете более краткое решение, вы можете использовать существующие библиотеки, такие как lodash. Функция chunk()из lodash позволяет разбить массив на фрагменты заданного размера, эффективно преобразуя его в матрицу. Вот пример:

import chunk from 'lodash.chunk';
const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const rows = 3;
const columns = 3;
const matrix = chunk(array, columns);
console.log(matrix);

В этой статье мы рассмотрели три различных метода преобразования массива TypeScript в матрицу. Мы начали с подхода с вложенным циклом, затем использовали метод reduce()и, наконец, увидели, как использовать функцию chunk()из библиотеки lodash. В зависимости от ваших конкретных требований и стиля кодирования вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Поняв эти методы, вы сможете эффективно манипулировать массивами и преобразовывать их в матрицы в своих проектах TypeScript.

Не забудьте выбрать метод, соответствующий требованиям и сложности вашего проекта. Поэкспериментируйте с этими примерами кода и адаптируйте их к своим конкретным случаям использования. Приятного кодирования!