在javascript中访问数组内的对象

在javascript中访问数组内的对象,javascript,Javascript,下面是我打算构建的状态机的一个示例 this.statemachine= { 声明:“空闲”, 过渡: { 闲置:{ ebaseinit:函数() { console.log(“Firebase初始化完成”); } , coreinit:函数() { console.log(“Firestore初始化完成”); } }, 就绪: { fetchdata:函数() { 日志(“获取数据”); } } } }您可以捕获事件名称并将其用作对象键 this.statemachine.trans

下面是我打算构建的状态机的一个示例

this.statemachine=
{
声明:“空闲”,
过渡:
{
闲置:{
ebaseinit:函数()
{
console.log(“Firebase初始化完成”);
} ,
coreinit:函数()
{
console.log(“Firestore初始化完成”);
}
},
就绪:
{
fetchdata:函数()
{
日志(“获取数据”);
}
}    
}

}
您可以捕获事件名称并将其用作对象键


this.statemachine.transitions['ready']
您必须了解的第一件事是
statemachine.transitions
不是数组,而是
对象
,这就是为什么您不能在其上使用
indexOf

if(this.statemachine.transitions)
 let obj = this.statemachine.transitions[statemachine.state]

您可以使用for循环来迭代对象,并找到您要查找的内容

if (this.statemachine.transitions){
      for (var key in this.statemachine.transitions) {
        if (this.statemachine.transitions.hasOwnProperty(key)) {
          if(this.statemachine.state == key){
            console.log(this.statemachine.transitions[key])
          }
        }
      }
    }

this.statemachine.transitions[this.statemachine.state]