繁体   English   中英

我如何分解物体

[英]How do i destructure an object

我有一个功能

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函数的数据中获得的结果来分解配置文件属性。非常感谢您的协助...

您可以通过两种方式执行此操作:

  1. 您的方法分为两个步骤:

     const {results} = data; const {profile} = results; 
  2. 或一步:

     const {results: {profile}} = data; 

为了更好地理解,您应该查看对象销毁的文档。

这里是一个例子:

 const data = { results: { name: "test1", surname: "123" }, profile: { name: "test2", surname: "321" } }; const { results, profile } = data; console.log(results); console.log("===="); console.log(profile); 

如果需要使用结果数组中的第n个元素,可以执行以下操作

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

 let data = { results: [1, 2, 3, 4] } let { results: { 0: profile1, 2: profile2 } } = data; console.log(profile1) console.log(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.log(profile1) console.log(name) console.log(gender) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM