У меня есть два объекта, как это:

let obj1 = { slotIDs: ["5e0301f353ee2a0546298f15"] } let obj2 = { slotIDs: ["5e0301f353ee2a0546298f15", "5e03050453ee2a0546298f1c"] } 

Мне нужно объединить их в один массив, как это

 let newObj = ["5e0301f353ee2a0546298f15", "5e03050453ee2a0546298f1c"] 

Я пытался использовать lodash union и map, но не повезло.

Одна строка кода решения:

 let obj1 = { slotIDs: ['5e0301f353ee2a0546298f15'] } let obj2 = { slotIDs: ['5e0301f353ee2a0546298f15', '5e03050453ee2a0546298f1c'] } const result = [...new Set([...obj1.slotIDs, ...obj2.slotIDs])] console.log(result) 

В Vanilla JS вы можете выполнять итерации с помощью Array.flatMap() и возвращать slotIDs чтобы получить массив идентификаторов. Чтобы удалить дубликаты, создайте набор из массива и распространите набор обратно в массив:

 const obj1 = { slotIDs: ['5e0301f353ee2a0546298f15'] } const obj2 = { slotIDs: ['5e0301f353ee2a0546298f15', '5e03050453ee2a0546298f1c'] } const result = [...new Set([obj1, obj2].flatMap(o ={amp}gt; o.slotIDs))] console.log(result) 

С lodash вы можете выполнять итерации с помощью _.flatMap() и использовать slotIDs для получения массива идентификаторов. Используйте _.uniq() для удаления дубликатов:

 const obj1 = { slotIDs: ['5e0301f353ee2a0546298f15'] } const obj2 = { slotIDs: ['5e0301f353ee2a0546298f15', '5e03050453ee2a0546298f1c'] } const result = _.uniq(_.flatMap([obj1, obj2], 'slotIDs')) console.log(result) 
 {amp}lt;script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"{amp}gt;{amp}lt;/script{amp}gt; 

Object.assign(obj1, obj2).slotIDs

 const obj1 = { slotIDs: ['5e0301f353ee2a0546298f15'] } const obj2 = { slotIDs: ['5e0301f353ee2a0546298f15', '5e03050453ee2a0546298f1c'] } const result = Object.assign(obj1, obj2).slotIDs console.log(result) 

Хун Попробуй

новый участник этого сайта. Будьте внимательны, спрашивая разъяснения, комментируя и отвечая. Проверьте наш

Правила поведения

,

Пытаться

 let newObj= [] for(const value in Object.assign(obj1,obj2)["slotIDs"]) newObj.push(Object.assign(obj1,obj2)["slotIDs"][value]) 

Edit- Вот более простая или однострочная версия.

 let newObj=Object.assign(obj1,obj2)["slotIDs"] 

Как предложил @OriDrori, вышеприведенные методы изменяют сам объект obj1 и плохо работают в аналогичных вопросах, где в Obj1 есть несколько ключей, пара значений. Вот что вы делаете, чтобы избежать этого

 let newObj=Array.from(new Set(obj1.slotIDs.concat(obj2.slotIDs))) 

Быстрое примечание — использование Array.from() является обязательным.

Saurav

новый участник этого сайта. Будьте внимательны, спрашивая разъяснения, комментируя и отвечая. Проверьте наш

Правила поведения

,

РЕДАКТИРОВАТЬ:

 let obj1 = { slotIDs: ['5e0301f353ee2a0546298f15', '5e0301f353ee2a0546298f16'] } let obj2 = { slotIDs: ['5e0301f353ee2a0546298f15', '5e03050453ee2a0546298f1c'] } let result = Array.from( new Set(obj1.slotIDs.concat(obj2.slotIDs)) ) console.log(result) 


Старый ответ:

Как насчет { ...obj1, ...obj2 }.slotIDs ?

 let obj1 = { slotIDs: ['5e0301f353ee2a0546298f15'] } let obj2 = { slotIDs: ['5e0301f353ee2a0546298f15', '5e03050453ee2a0546298f1c'] } let result = { ...obj1, ...obj2 }.slotIDs console.log(result)