@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 и дальше я просто уже теряюсь.. А хотелось бы увидеть как должно быть, чтоб изучить логику и понять как нужно. Так как у меня вообще не получается. Извините может за глупый вопрос.
  • Вопрос задан
  • 219 просмотров
Решения вопроса 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);
Ответ написан
WblCHA
@WblCHA
Просто как вариант:
const columns = t[0];
  
  const result = t.reduce((acc, row1, i, arr) => {
    if(!(i & 1)) {
      return acc;
    }
    
    const row2 = arr[i + 1];
    const block = columns.map((c, j) => [c, row1[j], row2[j]]);
    
    acc.push(block);
    return acc;
  }, []);
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
arr.reduce((acc, n, i, a) => {
  if (i--) {
    if (i % 2 === 0) {
      acc.push(a[0].map(m => [ m ]));
    }

    n.forEach((m, j) => acc[acc.length - 1][j].push(m));
  }

  return acc;
}, [])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
02 дек. 2021, в 01:37
600 руб./в час
02 дек. 2021, в 01:18
1000 руб./за проект
02 дек. 2021, в 01:08
6000 руб./за проект