将JavaScript对象解构以获取内部对象

3
我正在使用以下代码从React状态中获取对象。
const { organizations } = this.state;

状态对象如下。
this.state = {
    userOrganizations: {},
    OrganizationUsers: {}
}

userOrganizations 实际上是一个带有名为 organizations 的内部对象的对象。 我该如何使用 ES6 代码映射它?

编辑

实际上我需要使用以下代码获取 userOrganizationsOrganizationUsers 的内部对象。

const { organizations, users } = this.state;

organizationsusers是位于userOrganizationsOrganizationUsers内部的子对象。

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

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

类似于 const { organizations } = this.state.userOrganizations 这样的东西? - JoxieMedina
4个回答

3
你可以像嵌套一样使用解构,例如:
const { userOrganizations : { organizations } } = this.state;

或者简单地写入。
const {  organizations  } = this.state.userOrganizations;

这回答了我的问题。 :) - Imesh Chandrasiri

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)

在控制台中尝试


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);


如果代码看起来像这样 const { organizations, fooBar } = this.state;,其中还有另一个内部对象。那么最好的方法是什么? - Imesh Chandrasiri
你是什么意思,内部对象是什么样子的,你想从中提取出什么?你想知道如何同时解构多个层级吗? - CertainPerformance
添加了另一个代码片段。 - CertainPerformance

0

如果我没错的话,这应该解决了你的问题。

const { organizations } = this.state.userOrganizations;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接