Слияние двух объектов с ES6

Я уверен, что этот вопрос задан раньше, но я не могу найти ответ, который я ищу, поэтому здесь идет:

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

const response = {
  lat: -51.3303,
  lng: 0.39440
}

let item = {
  id: 'qwenhee-9763ae-lenfya',
  address: '14-22 Elder St, London, E1 6BT, UK'
}

Мне нужно объединить их вместе, чтобы сформировать это:

item = {
  id: 'qwenhee-9763ae-lenfya',
  address: '14-22 Elder St, London, E1 6BT, UK',
  location: {
    lat: -51.3303,
    lng: 0.39440
  }
}

Я знаю, что могу сделать это вот так:

item.location = {}
item.location.lat = response.lat
item.location.lng = response.lng

Тем не менее, я чувствую, что это не лучший способ сделать это больше, потому что ES6 представила классный материал для деструктурирования/назначения; Я пробовал сглаживание глубоких объектов, но, к сожалению, не поддерживался :( Я также просмотрел некоторые функции ramda, но не мог видеть ничего, что было бы применимо.

Итак, каков наилучший способ объединить эти два объекта с помощью ES6?

Ответ 1

Вы можете использовать Object.assign() чтобы объединить их в новый объект:

const response = {
  lat: -51.3303,
  lng: 0.39440
}

const item = {
  id: 'qwenhee-9763ae-lenfya',
  address: '14-22 Elder St, London, E1 6BT, UK'
}

const newItem = Object.assign({}, item, { location: response });

console.log(newItem );