如何分解包含其他对象的javascript对象

如何分解包含其他对象的javascript对象,javascript,object,ecmascript-6,destructuring,Javascript,Object,Ecmascript 6,Destructuring,我有一个javascript对象k,我通过解构从中获得了profile。新对象包含其中的其他对象(即包括位置、登录…和位置,位置也包含其中的其他对象)。我现在遇到的问题是打印出性别(或解构对象中的任何其他属性),只有在我省略用于解构概要文件数组的行中的位置时,它才起作用。请告诉我,我需要关于如何正确解决这个问题的帮助 let k = { "results": [ { "gender": "male", "name": { "title": "mr", "first": "

我有一个javascript对象
k
,我通过解构从中获得了
profile
。新对象包含其中的其他对象(即包括位置、登录…和位置,位置也包含其中的其他对象)。我现在遇到的问题是打印出性别(或解构对象中的任何其他属性),只有在我省略用于解构概要文件数组的行中的位置时,它才起作用。请告诉我,我需要关于如何正确解决这个问题的帮助

let k = {
"results": [
{
  "gender": "male",
  "name": {
    "title": "mr",
    "first": "eliott",
    "last": "roussel"
  },
  "location": {
    "street": "9072 rue de l'abbé-migne",
    "city": "versailles",
    "state": "indre",
    "postcode": 83762,
    "coordinates": {
      "latitude": "-4.2370",
      "longitude": "-139.6080"
    },
    "timezone": {
      "offset": "-8:00",
      "description": "Pacific Time (US & Canada)"
    }
  },
  "email": "eliott.roussel@example.com",
  "login": {
    "uuid": "3e2e9f7d-ca08-4c81-93b2-f42dd0bbb421",
    "username": "saddog976",
    "password": "chippy",
    "salt": "XPbHVGge",
    "md5": "70ab9b8e14cc0be868dc53995274f5b9",
    "sha1": "4cedb04743f2529ea2a801ec539f8f02731f659d",
    "sha256": "f2c6c1bcdcd0cc4de923501cd5bf87dbd1d948c95abc9f9b08a90b78ae7f5616"
  },
  "dob": {
    "date": "1960-08-08T00:53:25Z",
    "age": 58
  },
  "registered": {
    "date": "2004-07-15T15:57:51Z",
    "age": 14
  },
  "phone": "05-07-77-21-18",
  "cell": "06-64-48-62-07",
  "id": {
    "name": "INSEE",
    "value": "1NNaN32524474 85"
  },
  "picture": {
    "large": "https://randomuser.me/api/portraits/men/81.jpg",
    "medium": "https://randomuser.me/api/portraits/med/men/81.jpg",
    "thumbnail": "https://randomuser.me/api/portraits/thumb/men/81.jpg"
  },
  "nat": "FR"
}
],
"info": {
"seed": "d8ec8b34c6f6c368",
"results": 1,
"page": 1,
"version": "1.2"
 }
}
let l = k.results;
let profile = l[0];
const{gender, name, email, location, login, dob, registered, phone, cell, id, picture, nat} = profile;

alert(gender);
您可以重命名和属性,因为它们都是内置对象的一部分

var k={结果:[{性别:“男性”,姓名:{头衔:“mr”,第一个:“eliott”,最后一个:“roussel”},地点:{街道:“阿尔贝-米涅街9072号”,城市:“凡尔赛”,州:“indre”,邮编:83762,坐标:{纬度:“-4.2370”,经度:“-139.6080”},时区:{偏移:“-8:00”,描述:“太平洋时间(美国和加拿大)”},电子邮件:“艾略特。roussel@example.com,登录:{uuid:“3e2e9f7d-ca08-4c81-93b2-f42dd0bbb421”,用户名:“saddog976”,密码:“chippy”,salt:“XPbHVGge”,md5:“70ab9b8e14cc0be868dc53995274f5b9”,sha1:“4CEDB04743F2529EA2AA801EC539F8F02731F659D”,sha256:“F2C6C1BCD0CC4DE923501CD5BF87DBD1D948C95ABC9B08A90B78AEF5B616”,日期:“1960-0808:25Z”“,年龄:58},注册:{日期:“2004-07-15T15:57:51Z”,年龄:14},电话:“05-07-77-21-18”,手机:“06-64-48-62-07”,id:{姓名:“INSEE”,值:“1NNaN32524474 85”},图片:{大号:https://randomuser.me/api/portraits/men/81.jpg,中等:https://randomuser.me/api/portraits/med/men/81.jpg“,缩略图:"https://randomuser.me/api/portraits/thumb/men/81.jpg“},nat:”FR“}],信息:{种子:“d8ec8b34c6f6c368”,结果:1,第1页,版本:“1.2”},
{性别,姓名:name2,电子邮件,位置:loc2,登录,出生日期,注册,电话,手机,身份证,图片,nat}=k.results[0];

console.log(gender);
谢谢。重命名位置成功了,我只需要把它放在一边。好的,我想把位置放在一边可以完全解决问题。虽然我可以打印出性别,但我仍然会遇到这个错误(---当我在在线开发工具包上尝试时,您没有从传递给“displayUserPhotoAndName”函数的“数据”中获得的“结果”中对“profile”属性进行反结构,我不想使用函数,这意味着什么?我从错误声明中了解到,我根本没有接触过profile对象(也就是说,我没有对配置文件进行分解)…我不明白为什么它会拒绝它,代码在内存中似乎很好,因为您的数据结构不匹配。