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

Как разбить массив на части?

Завис в создание массивов из другого массива, например для графика.
у меня есть массив такого вида:
[
  [x1, y1, x2, y2],
  [x1, y1, x2, y2],
  [x1, y1, x2, y2]
]

например:
const data = [
  [1497052800, 100, 1597052800, 120, 1597052800, 120],
  [1497139200, 140, 1597052800, 80],
  [1497225600, 200, 1597052800, 222],
  [1497312000, 80, 1597052800, 100],
 ]

А нужно сделать вот такие штуки, по меньше
[
  [x1, y1],
  [x1, y1],
  [x1, y1]
]

[
  [x2, y2],
  [x2, y2],
  [x2, y2]
]

Те нужно разбить x y по парам. и их может быть разное количество еще
Допер до такой конструкции:
const newArr = flattenDeep(data, 2)
  .filter((e, i) => i % 2)
  .reduce(
    (acc, el, i) => [
      ...acc,
      [flattenDeep(data, 2)[i * 2], flattenDeep(data, 2)[i * 2 + 1]]
    ],
    []
  );

Но она не правильная вроде. https://codesandbox.io/s/wkl72pymz5
Как сделать чтобы работало как надо, уже всю голову сломал =/
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Простой 3 комментария
Ответ пользователя MamaLuyba К ответам на вопрос (3)
@MamaLuyba
если у тебя будет строгий порядок, где x2 будет через один элемент после x1, то проходи по элементам подмассива [x1, y1, x2, y2], делай push arr[0] и arr[1] в новый подмассив [x1, y1], удаляй их же из оригинального подмассива, затем опять проходи по оригинальному подмассиву с тем же условием, пока не закончатся элементы. потом push этот новый подмассив в новый массив, затем бери следующий подмассив.
Ответ написан
Комментировать