因为循环没有显示我的范围

时间:2015-02-02 14:19:51

标签: javascript loops for-loop

我试图让我的for循环显示47到28之间的每个数字,从最高到最低。

出于某种原因,我的代码给了我答案" 28,28"。

任何人都可以帮助我解决我做错的事吗?我只是想补充一点,我对javascript还是一个新手!

    var fx = "";

    var printRangeReversed = function(rangeStart1,rangeStop1){
        for (var a3=rangeStart1; a3 > rangeStop1; a3--); 
            fx+=a3+",";
            return fx=rangeStop1&&(fx+=a3),fx;
            return fx = fx.substr(0,fx.length-1);
    }

ANSWER = printRangeReversed(47,28);

2 个答案:

答案 0 :(得分:6)

for循环以;结束,因此后续行只是执行,就像它在循环外一样。此外,第二个return语句是多余的,因为第一个return下方的代码无法访问。

更好的代码是

var fx = "";
var printRangeReversed = function(rangeStart1,rangeStop1){
    var arr = [];
    for (var a3 = rangeStart1; a3 >= rangeStop1; a3--) 
        arr.push(a3);
    return arr.join(); // same as arr.join(",")
}
fx = printRangeReversed(47, 28);

请注意,我使用的是>=而不是>,因为它不是您想要的。

答案 1 :(得分:0)

你不想在循环中做回车。让它完成,然后返回结果。例如:

var printRangeReversed = function(rangeStart1,rangeStop1){
    var fx = "";
    for (var a3=rangeStart1; a3 > rangeStop1; a3--) {
        fx+=a3+",";
    }
    return fx;
}

ANSWER = printRangeReversed(47,28);