Javascript 如何访问数组中的嵌套对象

Javascript 如何访问数组中的嵌套对象,javascript,arrays,Javascript,Arrays,我试图访问嵌套数组中的特定字段。我的代码如下: var array1 = []; const data = { [userId]: [{ id: id, name: fullName, email: userEmail }, ], }; array1.push(data); 如果我打印这个: console.log("index 0: ", array1[0]);

我试图访问嵌套数组中的特定字段。我的代码如下:

var array1 = [];

const data =  { [userId]: [{
             id: id,
             name: fullName,
             email: userEmail },
            ],
          };

array1.push(data);
如果我打印这个:

console.log("index 0: ", array1[0]);
它给出了以下结果:

index 0:  {
  buMqSZpEaKZABffDGNs5jzVK36Y2: [
    {
      id: '65',
      name: 'nameTest',
      email: 'myexmail@gmail.com'
    }
  ]
}

但是,我想知道如何访问userId中的信息,如userId.name,并能够找到特定的userId。例如,在array1中,找到用户ID“AEPOUZPKUNLAOMNBNGNS5YNMD36L1”并显示其信息,就像我这样做一样
activeSockets[0]。
indexOf()
。大多数时候,我尝试访问其中的字段时都会说,
无法读取未定义的
的属性“”。任何帮助都将不胜感激

您可以
在数组中查找用户ID的对象

var数组1=[];
变量数据={['ABC123']:[{
id:1,
姓名:'约翰',
电子邮件:“约翰。doe@nomail.com'
},
],
};
阵列1.推送(数据);
让userId='ABC123';
让userObj=array1.find((x)=>x[userId]!==未定义);
如果(userObj){//查找是否返回了对象?
让userData=userObj[userId][0];
log(`name:${userData.name}`);
console.log(userData);
}
否则{
log(`user${userId}未找到。`);

}
所以,在我们走这条路之前,先问一个问题。阵列的用途是什么?由于您的对象具有userid的键,并且您可以在一个对象中有多个键值对,那么您对数组的预期用途是什么?因此,我可以比较检查数组中是否存在userid,如果存在,则只替换userid中的id,这可以用一个简单的对象来完成
data[userId]
如果不存在,则返回未定义或null。如果它确实存在,
data[userId].id=
工作得很好,所以我的评论是最外层的数组是不必要的,并且会产生一些您必须解决的问题。因此,我建议不要解决这个问题,首先不要创建它。Zero00ne我没有注意到我为每个用户创建了数组,我通过删除额外的[]进行了更正,谢谢,但是如果我只想在ABC123中获取名称字段呢?我的名称没有定义。log(userData.name);该名称位于数组中的对象中。请参阅更新。我不确定为什么一直使用console.log('name:',userData[0].name)获取undefined的无法读取属性'name';您是否注意到在查找结束时使用了
[userId]