Это мой объект, который мне нужно изменить:
const doc = {
_id: 'ZjenyEXyLChbksHqL',
content: {
en: [
{
content: 'Content',
timestamp: 1518811796,
reviewed: {
user: '5b0b9e1153e8a750642e9caf',
timestamp: 1518811796
},
finalized: {
user: '5b0b9e1153e8a750642e9caf',
timestamp: 1518811796
}
}
]
},
reference: [ 'hp9v53uQqQPRXSYAi' ],
main: 'XN7iqmCFD4jpgJZ6f'
}
Мне нужно заменить объект содержимого первым объектом массива en
.
Результат должен выглядеть следующим образом:
{
_id: 'ZjenyEXyLChbksHqL',
content: 'Content',
reviewed: {
user: '5b0b9e1153e8a750642e9caf',
timestamp: 1518811796
},
finalized: {
user: '5b0b9e1153e8a750642e9caf',
timestamp: 1518811796
},
reference: [ 'hp9v53uQqQPRXSYAi' ],
main: 'XN7iqmCFD4jpgJZ6f'
}
Моя попытка выглядит так:
const language = 'en'
const data = (doc && doc.content && doc.content[language] && doc.content[language][0]) || {}
doc.content = data.content
doc.reviewed = data.reviewed
doc.finalized = data.finalized
Это выглядит не очень элегантно. Разве я не могу использовать оператор распространения или что-то вроде этого?
Также моя проблема в том, что reviewed
и finalized
не обязательны. В этом случае я не хочу устанавливать этот ключ.
В моем коде я получаю finalized: undefined
.