Задать вопрос
@Alex10214

Как двумерный массив порезать на куски и превратить строки в столбцы?

Есть такой массив:

const t = [
  ['1Y', '3Y', '5Y', 'Since inception'],
  ['2.3', '36.57', '27.56', '24.36'],
  ['41.56', '-3.01', '2.24', '-6.12'],
  ['-11.28', '-18.78', '-18.78', '-22.7'],
  ['-8.99', '-57.64', '-57.64', '-89.62'],
  ['17.48', '23.41', '19.9', '20.83'],
  ['19.96', '24.25', '21.25', '23.72'],
  ['0.13', '1.56', '1.39', '1.17'],
  ['2.08', '-0.12', '0.11', '-0.26'],
  ];

Из него надо сделать такой массив:

const res = [
  [
    ['1Y', '2.3', '41.56'],
    ['3Y', '36.57', '-3.01'],
    ['5Y', '27.56', '2.24'],
    ['Since inception', '24.36', '-6.12'],
  ],
  [
    ['1Y', '-11.28', '-8.99'],
    ['3Y', '-18.78', '-57.64'],
    ['5Y', '-18.78', '-57.64'],
    ['Since inception', '-22.7', '-89.62'],
  ],
  [
    ['1Y', '17.48', '19.96'],
    ['3Y', '23.41', '24.25'],
    ['5Y', '19.9', '21.25'],
    ['Since inception', '20.83', '23.72'],
  ],
  [
    ['1Y', '0.13', '2.08'],
    ['3Y', '1.56', '-0.12'],
    ['5Y', '1.39', '0.11'],
    ['Since inception', '1.17', '-0.26'],
  ]
]

У меня получается только через циклы for в for и в for и дальше я просто уже теряюсь... А хотелось бы увидеть, как должно быть, чтоб изучить логику и понять как нужно.
  • Вопрос задан
  • 292 просмотра
Подписаться 2 Простой 1 комментарий
Решение пользователя Rsa97 К ответам на вопрос (3)
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
const result = [];
for (let i = 1; i < t.length; i += 2) {
  const sub = [];
  for (j = 0; j < t[0].length; j += 1) {
    sub.push([t[0][j], t[i][j], t[i + 1][j]]);
  }
  result.push(sub);
}
console.log(result);
Ответ написан