sinneren
@sinneren

Как склеить вложенные объекты с разными условиями для разных ключей?

Объекты могут иметь уникальные и разные значения по одним ключам.

То есть, если изменилось значение val, то записать его (или сравнить и выбрать меньшее, в общем, некое условие), а если другое значение range, то записать как новый элемент (объект).

UPD: объекты по типу являются object, но по прототипу - array.

Пример объектов:
0: {
    range: 'Some Text',
    val: 0,
},
1: {
    range: 'Some Text second',
    val: 0,
},
2: {
    range: 'Some Text 3',
    val: 0,
}


0: {
    range: 'Some Text,
    val: 0,
},
1: {
    range: 'Some Text else',
    val: 0,
},
2: {
    range: 'Some Text 3',
    val: 1,
},
3: {
    range: 'Some Text 4',
    val: 2,
}


На выходе должен получиться такой объект:
0: {
    range: 'Some Text,
    val: 0,
},
1: {
    range: 'Some Text second',
    val: 0,
},
2: {
    range: 'Some Text 3',
    val: 1,
}, 
3: {
    range: 'Some Text else',
    val: 0,
},
4: {
    range: 'Some Text 4',
    val: 2,
}
]
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Object.values([ ...arr1, ...arr2 ].reduce((acc, n) => {
  if (acc[n.range]) {
    acc[n.range].val = что вписывать сюда, это уже вам виднее;
  } else {
    acc[n.range] = { ...n };
  }

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

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

Войти через центр авторизации
Похожие вопросы