javascript - 如何解构这个深层嵌套对象?

标签 javascript arrays destructuring

我有以下功能:

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

    // add your code here

    clearNotice();
  };

数据参数是来自https://randomuser.me/api/的API

作业包含以下说明:

找到 displayUserPhotoAndName 函数并在其中执行以下操作:

  • 第一个 if(!data) 返回后;终止
    的语句 函数如果未提供预期的数据参数,则创建一个
    对数据参数进行解构并获取
    的语句 来自它的结果属性;

  • 在下一行中创建第二条语句来解构 刚刚创建的 results 变量,并从中获取第一项 (它是一个数组!请参阅 https://randomuser.me/api/ )。你的解构 数组项应声明为配置文件。这代表了个人资料 从您想要显示的 API 调用中获取的用户数据 在您的应用程序中。

第 3 步 仍在 displayUserPhotoAndName 函数中:

  • 在应用中设置 HEADING 元素以显示标题、姓氏、 以及名字(按顺序,用一个空格分隔) API返回的用户个人资料。
  • 在您的应用中设置 IMG 以显示用户的大照片 API 返回的配置文件。

我做了什么:

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

    // add your code here
    const {results} = data.results;
    const [profile] = results;
    const {title, First, Last} = results;
    const [,,,,,,,,,picture] = results;
    const largeImage = picture.large;
    userImage.src = largeImage;
    headerUserInfo.innerText = title + ' ' +  First + ' ' + Last;
    clearNotice();
    displayExtraUserInfo(profile);
  };

我得到的错误:

You have not de-structured the 'results' property from the 'data' parameter passed to 'displayUserPhotoAndName' function

我急需帮助。感谢期待

最佳答案

我不会向您提供完整的答案,而是给您提示:

const { results } = data
const { profile } = results
console.log(profile)

可以写成:

const { results: { profile } } = data
console.log(profile)

以下是我的一些帖子,您可以从中进一步了解:

destructure an objects properties

how is this type annotation working

why source target when destructuring

关于javascript - 如何解构这个深层嵌套对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55145686/

相关文章:

reactjs - React-nativeanimate.event 自定义 onScroll 监听器

javascript - THREE.CameraDolly 不是构造函数(Three.js 和 dolly.js)

javascript - 页面加载一段时间后下载文件?

javascript - 使用键从 json 数组中获取 json 对象

java - 判断一个对象是数组还是字符串

javascript - 是否存在用于将对象属性的子集复制到新对象中的 ES6 速记?

包含带有特殊字符的字段的 JavaScript 解构对象

javascript - 当数字未知时,有没有办法遍历所有 jwplayer 实例?

javascript - 为什么 ISN'T `foo: ' bar'` 是 Javascript 中的语法错误?

php - 把 Laravel Query 变成 Key Value?