Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从密钥中访问数据_Javascript_Vue.js - Fatal编程技术网

Javascript 如何从密钥中访问数据

Javascript 如何从密钥中访问数据,javascript,vue.js,Javascript,Vue.js,我试图访问一个由键引用的数据对象。在本例中,我们在事件中嵌套了“申请人”数据。我正试图用这些数据创建一个新对象。我可以访问顶级事件数据和每个申请者的密钥,但我不知道如何访问申请者数据-例如,申请日期、备注和状态 我想说一些类似applicationStatus=key.status的东西,但这不起作用 onCreateApplication () { fb.eventsCollection.orderBy('startDate', 'desc').onSnapshot(querySnapsh

我试图访问一个由键引用的数据对象。在本例中,我们在事件中嵌套了“申请人”数据。我正试图用这些数据创建一个新对象。我可以访问顶级事件数据和每个申请者的密钥,但我不知道如何访问申请者数据-例如,申请日期、备注和状态

我想说一些类似applicationStatus=key.status的东西,但这不起作用

onCreateApplication () {
  fb.eventsCollection.orderBy('startDate', 'desc').onSnapshot(querySnapshot => {
  let appsArray = []

  querySnapshot.forEach(doc => {
    let event = doc.data()
    let eventId = doc.data().id
    let eventTitle = doc.data().title
    let eventSlug = doc.data().slug
    let applications = doc.data().applicants
    let appStatus = doc.data().applicants.status
    for (var key in doc.data().applicants) {
      let eventData = {
        id: eventId,
        title: eventTitle,
        slug: eventSlug
      }
      let userData = {
        id: key
      }
      let application = {
        event: eventData,
        user: userData,
        status: key.status????????,
        appliedDate: key.created??????
      }
      fb.applicationsCollection.add(application)
    }

  })


  })
},

这是我对您的数据结构的最佳猜测。我希望这有帮助,并请评论,以澄清任何其他事情

onCreateApplication(){
  fb.eventsCollection.orderBy('startDate', 'desc').onSnapshot(querySnapshot => {
    querySnapshot.forEach(doc => {
      let data = doc.data();    
      let applications = Object.keys(data.applicants).map(function(id){
        let application = {
          event: {
            id: data.id,
            title: data.title,
            slug: data.slug
          },
          user: {
            id: id
          },
          status: data.applicants[id].status,
          appliedDate: data.applicants[id].created
        })

        fb.applicationsCollection.add(application);

        return application;
      })
    })
  })
}

你什么意思我想说applicationStatus=key.status,但那不起作用。?你会遇到什么错误?这让人困惑:让applications=doc.data().applicators;让appStatus=doc.data().applicators.status;是对象还是数组?你能分享doc.data()的json对象吗?David,doc.data()里面有很多东西。。。这里的顶部部分也显示了“申请者”已接受的部分:2322209添加弃权:“ageRequirement:”18“申请者:{01YsU8aPIfPd725ygJLGUmbnmOk2:{…},0DGIQ0MGYMO2RPYPLPYLS6GMVSJPP2:{…},0FHG4QX8QTZKBDxVJDWHSKQPE2:{…},0QLBZ6N7WHQSPHBPLvLJQP2:{…},0RNOT3DUQUDNX7JGF6WVOFONS1:{…},}申请部分:2322213巴巴多斯:真正的调酒师:真正的调酒师“申请人”中的每个申请:申请人:0DgIQ0mGYmO2frPpylS6gmvSjPP2:createdAt:“2018年5月15日星期二19:50:54 GMT-0700(PDT)”日期:“2018年5月19日星期六16:20:26 GMT-0700(太平洋夏令时)”删除:“2018年5月25日星期五16:55:31 GMT-0700(PDT)”媒体:真实注释:“班次:“全职”签名:“Marcello Sanchez III”状态:“放弃”弃权:真实