【问题标题】:JavaScript for loop only executed one timeJavaScript for 循环只执行一次
【发布时间】:2014-06-02 23:34:03
【问题描述】:

非常感谢您对我的代码的帮助。这看起来非常非常简单,但我根本看不出问题出在哪里。仅出于测试目的,我想将内部 for 循环中的“j”的 9 个值中的每一个以及外部 for 循环中的“i”的 9 个值中的每一个输出到控制台,总共 81输出。但是,它只返回一次 "j" (9) 的第一个值。我做错了什么?

    var getPalindrome = function(){
    for (var i=9;i>0; i--){
        for (var j=9;j>0;j--){
            return ("J: " + j);
        }
        return ("I: " + i);
    }
}
console.log(getPalindrome());

输出:“J:9”

【问题讨论】:

  • return立即退出当前函数。
  • 这个函数的具体目标是什么?

标签: javascript for-loop


【解决方案1】:

不要在每个循环中从函数返回

你想要这样的东西

var getPalindrome = function(){
    var retval = ""
    for (var i=9;i>0; i--){
        for (var j=9;j>0;j--){
            retval += "J: " + j + "\n";
        }
        retval += "I: " + i + "\n";
    }
    return retval;
}
console.log(getPalindrome());

var getPalindrome = function(){
    for (var i=9;i>0; i--){
        for (var j=9;j>0;j--){
            console.log( "J: " + j);
        }
        console.log("I: " + i);
    }
}
getPalindrome();

【讨论】:

    【解决方案2】:

    return 不像回声。在过程完成之前它不会返回,然后将最后一个输入输出到变量。尝试 document.write 或使用数组捕获每个循环,然后在循环后输出结果。

    【讨论】: