Слияние двух объектов с 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 );
Ответ 2
Еще один аспект:
let result = { ...item, location : { ...response } }
Но распространение объекта еще не стандартизировано.
Также может быть полезно: fooobar.com/info/23361/...