[英]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函数的数据中获得的结果来分解配置文件属性。非常感谢您的协助...
您可以通过两种方式执行此操作:
您的方法分为两个步骤:
const {results} = data; const {profile} = results;
或一步:
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.