Javascript ES6 Переопределение вложенного объекта Родительская и дочерняя переменная назначения - PullRequest
0 голосов
/ 28 апреля 2020

I Уничтожение вложенных объектов первой переменной внутри родительского объекта, затем я объявляю другую переменную для установки дочернего значения, но есть некоторая ошибка, я не знаю, какой способ решить эту проблему достаточно и читабелен

let personObj = {
        Name: 'Robiul',
        Age: 22,
        Address: {
            city: 'Dhaka',
            country: 'Bangladesh'
        }
    }

    let {Address: myAddress} = personObj
    let {myAddress:{city: myCity, country: myCountry}}=myAddress

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

В первой строке вы уже разобрали Address в myAddress. Таким образом, вам не потребуется еще один слой вложения при его структурировании.

    let personObj = {
        Name: 'Robiul',
        Age: 22,
        Address: {
            city: 'Dhaka',
            country: 'Bangladesh'
        }
    }

    // destructure address and rename it to myAddress
    let { Address: myAddress } = personObj;
    
    // destructure myAdress and rename city and country
    let { city: myCity, country: myCountry } = myAddress;
    
    console.log('city', myCity, 'country', myCountry);

Кроме того, поскольку вы на самом деле нигде не используете myAddress, вы можете просто удалить это из personObj.

let personObj = {
  Name: 'Robiul',
  Age: 22,
  Address: {
    city: 'Dhaka',
    country: 'Bangladesh'
  }
}

// destructure address and rename it to myAddress
let {
  Address: {
     city: myCity,
     country: myCountry
  }
} = personObj;


console.log('city', myCity, 'country', myCountry);
0 голосов
/ 28 апреля 2020

Я думаю, что вы ищете

const {Address: myAddress} = personObj;
const {city: myCity, country: myCountry} = myAddress;
console.log(myAddress, myCity, myCountry);

или

const {Address: {city: myCity, country: myCountry}} = personObj;
console.log(myCity, myCountry); // notice no myAddress variable

или

const {Address: myAddress, Address:{city: myCity, country: myCountry}} = personObj;
console.log(myAddress, myCity, myCountry);
...