как объединить объекта но при этом и их значения array

const service  = {var1: 'string',var2: ['1','4','3']}
const mango    = {var1: 'string',var2: ['1','2']}

если я сделаю так

const data = Object.assign({}, service, mango)

то var2 будет ['1','2'] а если так

const data = Object.assign({}, mango, service)

то var2 будет ['1','4','3']

но нужно получить ['1','4','3','2']

возможно ли это при помощи Object.assign ?


Ответы (1 шт):

Автор решения: vp_arth

Возможно, но выглядеть будет страшновато.

const service  = {var1: 'string',var2: ['1','4','3']}
const mango    = {var1: 'string',var2: ['1','2']}

const data = Object.assign({}, service, mango, 
    {var2: [...new Set([...service.var2, ...mango.var2])]}
);

console.log(JSON.stringify(data));

То есть вручную восстанавливаете перетёртое свойство с необходимой вам стратегией.


Если нужно более общее решение, рекомендую найти готовое в npm

→ Ссылка