@Xpage

Как сделать переобход массива и добавление в массив еще одно значение?

Есть такой массив
coords: [
                  {
                    "date": 1606780800,
                    "value": -2.389158,
                    "line": 202012
                  },
                  {
                    "date": 1606953600,
                    "value": -1.810067,
                    "line": 202012
                  },
                  {
                    "date": 1607040000,
                    "value": -1.230976,
                    "line": 202013
                  },
                  {
                    "date": 1607126400,
                    "value": -0.651885,
                    "line": 202013
                  },
                  {
                    "date": 1607126400,
                    "value": -0.651885,
                    "line": 202013
                  }, ....

Нужно в конец каждого последнего объекта с последним названием линии, добавлять еще такой объект с value: 0
типа такого
coords: [
                  {
                    "date": 1606780800,
                    "value": -2.389158,
                    "line": 202012
                  },
                  {
                    "date": 1606953600,
                    "value": -1.810067,
                    "line": 202012
                  },
                  {
                    "date": 1606953600,
                    "value":0,
                    "line": 202012
                  },
                  {
                    "date": 1607040000,
                    "value": -1.230976,
                    "line": 202013
                  },
                  {
                    "date": 1607126400,
                    "value": -0.651885,
                    "line": 202013
                  },
                  {
                    "date": 1607126400,
                    "value": -0.651885,
                    "line": 202013
                  },                  {
                    "date": 1607126400,
                    "value": 0,
                    "line": 202013
                  }, ....

Пробовал через map, но что-то не туда видимо иду
this.chartCoords.trand1 = this.chartCoords.trand1.map(function (name) {
          return {{'Number(name.date * 1000), Number(name.value), Number(name.line)'},
          {'Number(name.date * 1000), Number(0), Number(name.line)'}}
        });
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
coords.reduce((acc, n, i, a) => (
  acc.push(n),
  (n.line !== a[i + 1]?.line) && acc.push({ ...n, value: 0 }),
  acc
), [])

или

coords.flatMap((n, i, a) =>
  i === ~-a.length || n.line !== a[-~i].line
    ? [ n, { ...n, value: 0 } ]
    : n
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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