访问对象中的层次结构数据 Javascript

Accessing Hierarchy Data in an Object Javascript

我需要访问 Javascript 对象中的 id 值,以显示一条简单消息,表明如果 id 值等于特定值,则用户具有会员资格。

我收到未定义的未捕获类型错误 'id' 消息

在控制台中显示为

subscriptions: Array(1)
     0: // COMMENT Don't know what this is
       autoRenew: false
       canRenew: false
       expiryDate: "2022-10-26T00:00:00"
       membership:
                 id: "819AGBHDRLQHNHPHKKMPKLGPMDRDTDMVL"

我假设等效 JSON 是这样的:

subscriptions {
    0
           {
       membership: {
           id: "819AGBHDRLQHNHPHKKMPKLGPMDRDTDMVL"
}
}
}

我的Javascript代码

const userObj3 = userObj['subscriptions']['0']['membership']['id'];

if (userObj3 = "819AGBHDRLQHNHPHKKMPKLGPMDRDTDMVL") {
  greeting = "You have membership";
}


你的订阅是一个数组,而且你在 if 中的比较不正确,应该是 =====,你也可以使用点注释来遍历对象,而不是在每个对象上使用括号关键。

将索引用作字符串而不是数字并没有错,只是不是一个好的做法。

您可能想考虑循环订阅而不是使用直接索引,以防有多个订阅。但这仅取决于您如何构建数据并且有点取决于您。

const userObj = {
  subscriptions: [
    {
      autoRenew: false,
      canRenew: false,
      expiryDate: '2022-10-26T00:00:00',
      membership: {
        id: '819AGBHDRLQHNHPHKKMPKLGPMDRDTDMVL'
      }
    },
    {
      autoRenew: true,
      canRenew: false,
      expiryDate: '2022-10-26T00:00:00',
      membership: {
        id: '201AGBHDRLQHNHPHKKMPKLGPMDRDTDMVL'
      }
    }
  ]
};

let greeting = "You're not a member";

userObj.subscriptions.forEach((sub) => {
  if (sub.membership.id === '201AGBHDRLQHNHPHKKMPKLGPMDRDTDMVL') {
    greeting = "You're a member";
  }
});

console.log(greeting);