在for循环中使用多个return语句

时间:2014-12-03 20:26:01

标签: javascript arrays

这是我的代码:

var looptimesfrarray_TEST = reversegridarrayFORUNDEFINE(st_time_formated_TEST);

for (var c = 0; c < obj.length - 1; c++) {
    if (looptimesfrarray_TEST[c] === undefined) {
        var mycharttime = Highcharts.dateFormat('%H:%M:%P', this.value);
        return timsesubstringforXaxis(mycharttime);
    } else {
        return timsesubstringforgrid(looptimesfrarray_TEST[c]);
    }
}

我想根据if循环中的else / for返回多个结果,但我的c在循环中没有增加,所以它每次都给我c = 0。我尝试使用breakcontinue,但它们无效。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

从函数返回结束该函数的执行。这意味着&#34;我有结果!我完成了!&#34;。

每当你绕过循环,你要么返回,要么你回来。

所以无论如何,当你第一次绕过循环时,函数会退出。

如果要循环遍历所有值,则需要在循环完成后返回 。通常,您希望在循环中收集变量中的数据,然后返回变量。

答案 1 :(得分:0)

@Quentin已经给出了解释,我只是展示一个代码,如何收集数组中每个元素的所有结果并从函数中返回该数组:

var res = [];
var looptimesfrarray_TEST = reversegridarrayFORUNDEFINE(st_time_formated_TEST);
   for (var c = 0; c < obj.length - 1; c++) {
   if (looptimesfrarray_TEST[c] === undefined) {

   var mycharttime = Highcharts.dateFormat('%H:%M:%P', this.value);

   res.push(timsesubstringforXaxis(mycharttime));

   }
   else {

   res.push(timsesubstringforgrid(looptimesfrarray_TEST[c]));


   }
 }
return res;