Javascript 循环浏览JSON文件的语法错误

Javascript 循环浏览JSON文件的语法错误,javascript,arrays,json,api,loops,Javascript,Arrays,Json,Api,Loops,我试图循环浏览这个JSON文件,找出总病例数最高的国家,然后显示该国。我不确定这是否是正确的方法。调试它时,它会说我的for循环行中有语法错误 var请求选项={ 方法:“GET”, 重定向:“跟随” }; 取回(“https://api.covid19api.com/summary“,请求选项) .then(response=>response.json()) 。然后(结果=>{ 让数组=[result.Countries]; 让topCountry=“0”; 设max=0; 对于(i=0;i

我试图循环浏览这个JSON文件,找出总病例数最高的国家,然后显示该国。我不确定这是否是正确的方法。调试它时,它会说我的for循环行中有语法错误

var请求选项={
方法:“GET”,
重定向:“跟随”
};
取回(“https://api.covid19api.com/summary“,请求选项)
.then(response=>response.json())
。然后(结果=>{

让数组=[result.Countries]; 让topCountry=“0”; 设max=0; 对于(i=0;i最大值) { 让topCountry=array[i].Countries.Country; 设max=array[i].Countries.totalconfirm; } } 控制台日志(topCountry); }) .catch(error=>console.log('error',error));
您希望在循环之外定义
topCountry
,并将数组的每个成员与之进行比较。现在,您只是将数组的每个成员与紧随其后的成员进行比较(
i+1
),这没有意义。当
i
点击数组的最后一个元素时,您将得到一个错误,因为
i+1
不存在。

您希望在循环之外定义
topCountry
,并将数组的每个成员与之进行比较。现在,您只是将数组的每个成员与紧随其后的成员进行比较(
i+1
),这没有意义。当
i
点击数组的最后一个元素时,您将得到一个错误,因为
i+1
不存在;让topCountry=“0”;设max=0;对于(int i=0;i max){let topCountry=array[i].Countries.Country;let max==array[i].Countries.totalconfirm}}}console.log(topCountry)这样吗?我创建了一个新的int值max,将其设置为0,然后改为与max进行比较,每次数组中的新值大于max时,它都将其设置为max。它仍然表示for循环的行中存在语法错误?我将array.length-1更改为array.length。看起来您的概念是正确的。您有
max==array[i]。国家…
不应该有两个等号,您需要一个等号,因为您正在重新分配
max
。除此之外,我没有看到任何错误,但在这样的注释中很难读取代码。啊。很抱歉您不想说
让max
进入循环。您已经使用
let
在循环外创建了
max
。现在你可以说
max=array[i].Countries.totalconfirm
,而不用
let
。基本上,您仅在第一次命名变量时使用
let
var
let
使其仅可访问较深的括号我尝试过,但它仍然在with if(array[i].totalconfirm>max)上显示语法错误您的错误可能是因为您请求的内容不存在。您的原始代码具有array=[result.Countries],但随后您需要数组[0].Countries.totalconfirm。这将引发一个错误,因为如果数组[0].Countries(它将是),那么您需要一个名为totalconfirm of undefined的属性。可能您的意思是说array=result.Countries(不带括号),然后查看数组[i].TotalConfirmedlet array=[result.Countries];让topCountry=“0”;设max=0;对于(int i=0;i max){let topCountry=array[i].Countries.Country;let max==array[i].Countries.totalconfirm}}}console.log(topCountry)这样吗?我创建了一个新的int值max,将其设置为0,然后改为与max进行比较,每次数组中的新值大于max时,它都将其设置为max。它仍然表示for循环的行中存在语法错误?我将array.length-1更改为array.length。看起来您的概念是正确的。您有
max==array[i]。国家…
不应该有两个等号,您需要一个等号,因为您正在重新分配
max
。除此之外,我没有看到任何错误,但在这样的注释中很难读取代码。啊。很抱歉您不想说
让max
进入循环。您已经使用
let
在循环外创建了
max
。现在你可以说
max=array[i].Countries.totalconfirm
,而不用
let
。基本上,您仅在第一次命名变量时使用
let
var
let
使其仅可访问较深的括号我尝试过,但它仍然在with if(array[i].totalconfirm>max)上显示语法错误您的错误可能是因为您请求的内容不存在。您的原始代码具有array=[result.Countries],但随后您需要数组[0].Countries.totalconfirm。这将引发一个错误,因为如果数组[0].Countries(它将是),那么您需要一个名为totalconfirm of undefined的属性。可能您的意思是说array=result.Countries(不带括号),然后查看数组[i]