Dark_Knight
@Dark_Knight
Game Dev

Как транспонировать матрицу?

Есть массив любой длины, но массивы внутри него всегда будут иметь одинаковую длину. Например

const arr1 = [['a', 'b'], ['1', '2'], ['+', '-']]

или

const arr2 = [['a', 'b', 'c'], ['1', '2', '3'], ['+', '-', '*']]

Надо сделать так, чтобы на входе функция принимала этот массив arr1 или arr2, а результат был следующего вида для arr1:

const result = [['a', '1', '+'], ['b', '2', '-']]

или, соответственно, для arr2:

const result = [['a', '1', '+'], ['b', '2', '-'], ['c', '3', '*']]
  • Вопрос задан
  • 119 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
const transpose = matrix => Array.from(
  { length: matrix[0]?.length ?? 0 },
  (_, i) => matrix.map(n => n[i])
);
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
const pivot = a=>a.reduce((c,e,i)=>(e.forEach((n,j)=>c[j][i]=n),c),a[0].map(z=>[]));

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы