Javascript 如何修复在console中登录一个特定日期的未定义问题 异步函数getjsondata(){ 试一试{ 状态=等待取数('https://covid.ourworldindata.org/data/owid-covid-data.json'); data=wait state.json(); }捕捉(错误){ 控制台日志(err); } } var-sumy=0; var tt_list=[]; 异步函数getmonthnewcases(){ 等待getmonthsum(); 等待getjsondata(); 等待获得国家(); 试一试{ for(设i=0;i

Javascript 如何修复在console中登录一个特定日期的未定义问题 异步函数getjsondata(){ 试一试{ 状态=等待取数('https://covid.ourworldindata.org/data/owid-covid-data.json'); data=wait state.json(); }捕捉(错误){ 控制台日志(err); } } var-sumy=0; var tt_list=[]; 异步函数getmonthnewcases(){ 等待getmonthsum(); 等待getjsondata(); 等待获得国家(); 试一试{ for(设i=0;i,javascript,Javascript,首先是代码中似乎有一些错误, 您没有从getjsondata返回任何内容 而且您没有在getmonthnewcases (参见代码注释) 异步函数getjsondata(){ 试一试{ 状态=等待取数('https://covid.ourworldindata.org/data/owid-covid-data.json'); return await state.json();//我猜您在这里指的是:console.log(data[isocount][“data”][z][“date”],…)

首先是代码中似乎有一些错误, 您没有从
getjsondata
返回任何内容
而且您没有在
getmonthnewcases

(参见代码注释)

异步函数getjsondata(){ 试一试{ 状态=等待取数('https://covid.ourworldindata.org/data/owid-covid-data.json');
return await state.json();//我猜您在这里指的是:
console.log(data[isocount][“data”][z][“date”],…)
。示例数据在哪里?使用
让arr=data[isocount][“data”
简化代码,并在
arr[z]上迭代
。listy是在哪里定义的?只有代码的答案没有帮助。一个好的答案应该解释OP存在问题的原因以及您的代码是如何解决的。
  async function getjsondata() {
     try {
        state = await fetch('https://covid.ourworldindata.org/data/owid-covid-data.json');
        data = await state.json();
     } catch (err) {
        console.log(err);
     }
  }
  
  var sumy = 0;
  var tt_list = [];
  async function getmonthnewcases() {
     
     await getmonthsum();
     await getjsondata();
     await getCountry();
     
     try {
        for (let i = 0; i < 12; i++) {
           for (let z = listy[i]; z <= listy[i + 1]; z++) {
              for (key in data[isocount]["data"][z]) {
                 if (data[isocount]["data"][z].hasOwnProperty(key) == true) {
                    sumy += Number(data[isocount]["data"][z]["total_cases_per_million"]);
                    tt_list[i] = sumy;
                 } else if (typeof data[isocount]["data"][z]["total_cases_per_million"] === "undefined") {
                    data[isocount]["data"][z]["total_cases_per_million"] = sumy;
                    continue;
                 }
                 if (z == data[isocount]["data"].length - 1) {
                    break;
                 }
                 console.log(data[isocount]["data"][z]["date"], sumy, data[isocount]["data"][z]["total_cases_per_million"]);
              }
           }
        }
        console.log(tt_list);
     } catch (err) {
        console.log(err);
     }
     
  }
  
async function getjsondata() {
 try {
    state = await fetch('https://covid.ourworldindata.org/data/owid-covid-data.json');
    return await state.json(); //<-- here
 } catch (err) {
    console.log(err);
 }
}

var sumy = 0;
var tt_list = [];
async function getmonthnewcases() {
 
 await getmonthsum();
 const data = await getjsondata(); //<-- and here
 await getCountry();
 
 try {
    for (let i = 0; i < 12; i++) {
       for (let z = listy[i]; z <= listy[i + 1]; z++) {
          for (key in data[isocount]["data"][z]) {
             if (data[isocount]["data"][z].hasOwnProperty(key) == true) {
                sumy += Number(data[isocount]["data"][z]["total_cases_per_million"]);
                tt_list[i] = sumy;
             } else if (typeof data[isocount]["data"][z]["total_cases_per_million"] === "undefined") {
                data[isocount]["data"][z]["total_cases_per_million"] = sumy;
                continue;
             }
             if (z == data[isocount]["data"].length - 1) {
                break;
             }
             console.log(data[isocount]["data"][z]["date"], sumy, data[isocount]["data"][z]["total_cases_per_million"]);
          }
       }
    }
    console.log(tt_list);
 } catch (err) {
    console.log(err);
 }