@teertsneerg

Как заполнить пропуски в массиве?

Есть массив состоящий из объектов:

let arr = [
{ x: '2', y: 724 },
  { x: '3', y: 22 },
  { x: '8', y: 56 },
  { x: '10', y: 440 },
  { x: '17', y: 448 },
  { x: '25', y: 672 },
  ....
];


Объекты внутри массива отсортированы по свойству x. Как заполнить пропуски в значениях x, указывая для y значение предыдущей точки? Т.е. из
...
{ x: '3', y: 22 },
{ x: '8', y: 56 },
...


нужно получить

...
{ x: '3', y: 22 },
{ x: '4', y: 22 },
{ x: '5', y: 22 },
{ x: '6', y: 22 },
{ x: '7', y: 22 },
{ x: '8', y: 56 },
...


и т.д.
  • Вопрос задан
  • 247 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
arr.reduce((acc, n) => {
  const { x, y } = acc[acc.length - 1] || {};
  for (let i = 1; n.x - x - i >= 1; i++) {
    acc.push({ x: `${+x + i}`, y });
  }

  acc.push({ ...n });

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

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

Похожие вопросы