代码之家  ›  专栏  ›  技术社区  ›  Jimmy

从特定javascript对象属性中提取值

  •  0
  • Jimmy  · 技术社区  · 6 年前

    async function myfunction(ref) {
      var r1 = await getReport(ref, "queue", "hour", "2018-10-03", "2018-10-04", "pageviews", "page");
      var r2 = await getReport(r1.reportID, "get").then(r2 => reportHandler(r1.reportID, r2, 0));
      console.log(r2);
    }
    

    console.log(r2); 输出此结果:

    {report: {…}, waitSeconds: 0, runSeconds: 0}
    report:
    data: Array(4)
    0:
    breakdown: [{…}]
    breakdownTotal: ["608674"]
    day: 1
    month: 10
    name: "Mon.  1 Oct. 2018"
    year: 2018
    __proto__: Object
    1:
    breakdown: [{…}]
    breakdownTotal: ["564566"]
    day: 2
    month: 10
    name: "Tue.  2 Oct. 2018"
    year: 2018
    

    我正在尝试使用使用在线教程生成的代码输出'breakdowntottal'的值

    const result = data.report.data.reduce((r, e) => {
      e.breakdownTotal.forEach(el => {
        let key = "data";
        if(!r[key]) r[key] = []
        r[key].push(...el.counts)
      })
      return r;
    }, {})
    

    但是,我得到一个错误:

    Uncaught (in promise) ReferenceError: data is not defined
        at myfunction (mytest3.html:12)
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Osama    6 年前

    返回 r2 myFunction

    async function myfunction(ref) {
      var r1 = await getReport(ref, "queue", "hour", "2018-10-    03", "2018-10-04", "pageviews", "page");
      var r2 = await getReport(r1.reportID, "get").then(r2 =>    reportHandler(r1.reportID, r2, 0));
      return r2;
    }
    

    data myFunction(ref);

    const data= await myFunction(ref);
    if(data!=null && data.report.data!=null){
    const result = data.report.data.reduce((r, e) => {
      e.breakdownTotal.forEach(el => {
      let key = "data";
       if(!r[key]) r[key] = []
        r[key].push(...el.counts)
      })
      return r;
      }, {})
    }