Javascript 如何访问嵌套对象

Javascript 如何访问嵌套对象,javascript,json,Javascript,Json,我想访问嵌套的Json文件,但不知道如何访问: var createPromise = new Promise(function (resolve, reject) { ddpclient.call('create_emailConnection',[ddpclient.collections.email], function (err, result) { console.log([ddpclient.collections.email])

我想访问嵌套的Json文件,但不知道如何访问:

  var createPromise = new Promise(function (resolve, reject) {
        ddpclient.call('create_emailConnection',[ddpclient.collections.email], function (err, result) {
          console.log([ddpclient.collections.email])
          resolve();
          if (err) {
            logger.error(0, '❌ error user_created')
          } else {
            logger.debug(5, 'users marked as created')
          }
        })
      })
本报税表

email.json

{ HEDGz2aafs2UdSvT3S: 
     { _id: 'HEDGz2aafs2UdSvT3S',
       batch: '2017-user-created-by-websocket',
       creationIP: 'None',
       creationDate: 2018-06-14T13:23:58.786Z,
       state: [Object],
    },
    M101KSi360g7cER8D5: 
     { _id: 'M101KSi360g7cER8D5',
       batch: '2017-box-created-by-websocket',
       creationIP: 'None',
       creationDate: 2018-06-14T13:24:31.145Z,
       state: [Object],
      } } 

因此,我想在我的json文件上获取_id,因为对象键
HEDGz2aafs2UdSvT3S
M101KSi360g7cER8D5
看起来是随机的和不可预测的,所以您可以在数组对象上使用
object.keys()
,并通过它们循环获取
_id
的值

var arr=[{HEDGz2aafs2UdSvT3S:
{u id:'HEDGz2aafs2UdSvT3S',
批次:“由websocket创建的2017用户”,
creationIP:“无”,
创作日期:“2018-06-14T13:23:58.786Z”
},
M101KSi360g7cER8D5:
{u id:'M101KSi360g7cER8D5',
批次:“由websocket创建的2017框”,
creationIP:“无”,
创作日期:“2018-06-14T13:24:31.145Z”
} } ];
arr.forEach((obj)=>{
键=对象。键(obj);
key.forEach((key)=>{
console.log(obj[key]。\u id);
});
});使用可以使用和

您有一个
数组
对象
,每个
对象
都有多个
对象
,每个对象都映射到
\u id
对象的
键。现在,您可以减少数组以连接所有
\u id
。由于对象的
\u id
相同,您可以使用对象的键来提取
\u id

var arr=[{HEDGz2aafs2UdSvT3S:{u id:'HEDGz2aafs2UdSvT3S',batch:'2017年用户由websocket创建',creationIP:'None',creationDate:'2018-06-14T13:23:58.786Z'},M101KSi360g7cER8D5:{u id:'M101KSi360g7cER8D5',batch:'2017年用户由websocket创建,creationIP:'None',,creationDate:'2018-06-14T13:24:31.145Z'}];
让ids=arr.reduce((a,c)=>[…a,…Object.keys(c)],[]);
控制台日志(ids)请尝试以下操作:

a.map(x => Object.keys(x).map(y => x[y]._id))
它将返回一个属性数组
\u id


FIDLE:

旁注:不要解决错误承诺,这会隐藏发生错误的事实。错误拒绝,这就是承诺拒绝的目的。我确实让ids=ddpclient.collections.email.reduce((a,c)=>[…a,…Object.keys(c)],[]);日志(ids)它告诉我reduce不是function@EyTa-上面的email.json是否存储在
ddpclient.collections.email
中?这是对数据库的调用我的json是这样的抱歉不是数组我会马上修改我的问题var arr={HEDGz2aafs2UdSvT3S:{u id:'HEDGz2aafs2UdSvT3S',batch:'2017用户由websocket创建,'creationIP:'None',creationDate:'2018-06-14T13:23:58.786Z'},M101KSi360g7cER8D5:{u id:'M101KSi360g7cER8D5',batch:'2017框由websocket创建,'creationIP:'None',creationDate:'2018-06-14T13:24:31.145Z'}@EyTa-查看我的最新答案。您只需要
对象键