Как повернуть даные?

В TypeScript существует несколько способов поворота данных, в зависимости от конкретных требований и типов данных. Рассмотрим несколько примеров.

1. Поворот массива: Для поворота массива в TypeScript можно воспользоваться методом reverse(). Этот метод изменяет порядок элементов в исходном массиве:

let myArray = [1, 2, 3, 4, 5];
myArray.reverse();
console.log(myArray); // [5, 4, 3, 2, 1]

2. Поворот строки: Чтобы повернуть строку в TypeScript, можно воспользоваться различными методами. Например, можно разделить строку на массив символов, затем развернуть этот массив и объединить символы в обратном порядке:

function reverseString(input: string): string {
  return input.split('').reverse().join('');
}

let myString = 'Hello, world!';
let reversedString = reverseString(myString);
console.log(reversedString); // "!dlrow ,olleH"

3. Поворот объекта: В TypeScript можно повернуть объект, изменив порядок его свойств. Однако следует помнить, что в JavaScript и TypeScript порядок свойств объекта не гарантирован, поэтому при повороте объекта полученный результат может иметь неожиданный порядок:

function reverseObject(obj: Record<string, any>): Record<string, any> {
  let reversedObj: Record<string, any> = {};
  let keys = Object.keys(obj);
  for (let i = keys.length - 1; i >= 0; i--) {
    let key = keys[i];
    reversedObj[key] = obj[key];
  }
  return reversedObj;
}

let myObject = { name: 'John', age: 25, city: 'New York' };
let reversedObject = reverseObject(myObject);
console.log(reversedObject); // { city: 'New York', age: 25, name: 'John' }

4. Поворот двумерного массива или матрицы: Если нужно повернуть двумерный массив или матрицу на 90 градусов, можно воспользоваться следующим алгоритмом:

function rotateMatrix(matrix: number[][]): number[][] {
  const n = matrix.length;
  let rotatedMatrix: number[][] = [];
  for (let i = 0; i < n; i++) {
    rotatedMatrix[i] = [];
    for (let j = 0; j < n; j++) {
      rotatedMatrix[i][j] = matrix[n - j - 1][i];
    }
  }
  return rotatedMatrix;
}

let myMatrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let rotatedMatrix = rotateMatrix(myMatrix);
console.log(rotatedMatrix); // [[7,4,1], [8,5,2], [9,6,3]]

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