#javascript #ecmascript-6
Вопрос:
У меня может быть два типа полезной нагрузки.
const payload = {
"firstName":"Steven",
"lastName":"Smith"
}
или
const payload = {
"personalDetails": {
"firstName":"Steven",
"lastName":"Smith"
}
}
Как я могу получить имя пользователя из полезной нагрузки во время вызова REST API.
const { firstName } = payload;
Приведенный выше код будет работать для первой полезной нагрузки, но он не будет работать для второй полезной нагрузки, так firstName
как вложен внутри personalDetails
. Есть ли способ вернуть его ES6
обратно ?
Ответ №1:
const { personalDetails: { firstName } } = payload;
Подробнее о деструктуризации вложенных объектов.
Комментарии:
1. Спорно, какой из них чище, лично мне
const { firstName } = payload.personalDetails
кажется более чистым.
Ответ №2:
Вы можете взять personalDetails
свойство, если нет undefined
, или null
или просто переменную напрямую.
const { firstName } = payload.personalDetails ?? payload;
Комментарии:
1. думаю
??
, это более современно, не поддерживает мою кодовую базу.2. вы могли бы взять логическое ИЛИ
||
вместо этого.
Ответ №3:
Странный сценарий у вас здесь, но это может решить проблему:
const { firstName } = payload.personalDetails ? payload.personalDetails : payload;