破坏javascript对象以获取内部对象

时间:2018-04-04 05:56:35

标签: javascript ecmascript-6

我正在使用以下代码从反应状态获取对象。

const { organizations } = this.state;

状态对象如下。

this.state = {
    userOrganizations: {},
    OrganizationUsers: {}
}

userOrganizations实际上是一个内部对象名为organizations的对象。如何使用es6代码映射?

修改

我真正需要的是使用以下代码获取userOrganizationsOrganizationUsers的内部对象。

const { organizations, users } = this.state;

organizationsusersuserOrganizationsOrganizationUsers内的子对象。

因此,当我想处理它们时,它们是否只需要调用

const { organizations, users } = this.state.userOrganizations, this.state.OrganizationUsers;

4 个答案:

答案 0 :(得分:4)

你可以像

那样嵌套破坏
const { userOrganizations : { organizations } } = this.state;

或简单地写

const {  organizations  } = this.state.userOrganizations;

答案 1 :(得分:1)

只需使用点符号,直到到达所需属性上方的父对象



const obj = { outer: { inner: 'value' }};
const { inner } = obj.outer;
console.log(inner);




要在不同的嵌套级别中一次构建多个内容,请尝试以下方法:



const x = {
  state: {
    userOrganizations: {
      organizations: 'orgValue'
    },
    OrganizationUsers: {
      users: 'userValue'
    }
  }
}
const { userOrganizations: { organizations }, OrganizationUsers: { users } } = x.state;
console.log(organizations + ' ' + users);




答案 2 :(得分:1)

这很简单,但仍有很多人弄错了。这是内部解构的一个例子

const obj = {
    someArray: [ 1, 2, 3],
    someInnerObj : {num: 123, txt: 'text'}
}

const {someArray: [first,second], someInnerObj: { num: myNum, txt: meText}} = obj
console.log(first,second,myNum,meText)

在控制台中试用

答案 3 :(得分:0)

如果我没错,这应该可以解决你的问题,

const { organizations } = this.state.userOrganizations;