JavaScript For循环使用If Else语句响应

时间:2018-04-27 06:37:49

标签: javascript php arrays ajax

我在if-else循环中使用了for语句,但我总是收到加拿大国家/地区数值的响应,其他国家/地区(印度,英国)显示该值0.问题是什么?为什么我没有收到其他国家的统计数据?

fLen = jArray.length;

for (i = 0; i < fLen; i++) {        

    if (jArray[i]['territory']=='India') {
        var india = jArray[i]['country_count'];
    }
    else {
        var india = '0';
    }

    if (jArray[i]['territory']=='United Kingdom') {
        var uk = jArray[i]['country_count'];
    }
    else {
        var uk = '0';
    }

    if (jArray[i]['territory']=='Canada') {
        var Canada = jArray[i]['country_count'];
    }
    else {
        var Canada = '0';
    }
}

2 个答案:

答案 0 :(得分:1)

更新到以下

var india = '0', uk = '0', canada = '0'; // put your variables outside for loop
for (i = 0; i < fLen; i++) {


    if (jArray[i]['territory']=='India') { // only set value in loop
        india = jArray[i]['country_count'];
    } else if (jArray[i]['territory']=='United Kingdom') {
        uk = jArray[i]['country_count'];
    } else if (jArray[i]['territory']=='Canada') {
        canada = jArray[i]['country_count'];
    }
}

推理 - 每当您的循环运行时,它会设置匹配条件的值并将其他所有人设置为“0”。当数组中的最后一个值发生时,只有匹配的条件将具有某个值,并且由于if..else条件,所有值都将为0。因此,将初始值移到循环外部并使用if .. else,如果在for循环中检查匹配。

答案 1 :(得分:0)

您的变量indiaukCanada是唯一的,并且会覆盖for-loop的迭代。所以最后,它们只匹配最后一个数据(i=fLen-1)。

您必须创建一个结果数组,例如india = [],然后在for循环中填充india[i]