Как деструктурировать объект

у меня есть функция

const displayUserPhotoAndName = (data) => {
  if (!data) return;

  // add your code here

  clearNotice();

};

После первого возврата if (!data); оператор, который завершает функцию, если ожидаемый параметр данных не предоставлен, создает оператор, который деструктурирует параметр данных и получает от него свойство результатов;

Создайте второй оператор в следующей строке, который деструктурирует переменную результатов, которую вы только что создали, и получите из нее первый элемент (это массив! См. https://randomuser.me/api/). Ваш элемент деструктурированного массива должен быть объявлен как профиль. Это представляет данные профиля пользователя, полученные в результате вызова API, которые вы хотите отобразить в своем приложении.

const displayUserPhotoAndName = (data) => {
    if (!data) return;    

    // add your code here
    const {results: results} = data;
    const {profile: results} = results;

это то, где я сейчас нахожусь, но я все еще получаю сообщение об ошибке, в котором говорится: «Вы не деструктурировали свойство профиля из результатов, полученных из данных, переданных в функцию displayUserPhotoAndName. Ваша помощь будет очень признательна …

Это не выглядит правильно. Вы ознакомились с документацией по деструктурирование?

Lewis 08.04.2019 17:13
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
387
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете сделать это двумя способами:

  1. Ваш подход из двух шагов:

    const {results} = data;
    const {profile} = results;
    
  2. Или в один шаг:

    const {results: {profile}} = data;
    

Для лучшего понимания вы должны проверить документация по деструктуризации объекта.

большое спасибо, это помогло, но я думаю, что есть проблема, потому что код не работает... я все еще буду работать над этим.

Samuel Olusakin 08.04.2019 17:29

Вот пример:

const data = {
    results: {
        name: "test1",
        surname: "123"
    },
    profile: {
        name: "test2",
        surname: "321"
    }
};

const { results, profile } = data;

console.info(results);
console.info("=== = ");
console.info(profile);
Ответ принят как подходящий

Вы можете сделать следующее, если вам нужен n-й элемент из массива результатов.

{ results: { n: profile } } = data;

let data = { results: [1, 2, 3, 4] }

let { results: { 0: profile1, 2: profile2 } } = data;

console.info(profile1)
console.info(profile2)

Даже вы можете сделать дальнейшую деструктуризацию

let data = { results: [{ name: 'myname1', gender: 'male' }, { name: 'myname2', gender: 'male' }, { name: 'myname3', gender: 'female' }, { name: 'myname4', gender: 'male' }] }

let { results: { 0: profile1, 2: { name, gender } } } = data;

console.info(profile1)
console.info(name)
console.info(gender)

Другие вопросы по теме