Javascript For循环还是if语句?

Javascript For循环还是if语句?,javascript,function,if-statement,for-loop,Javascript,Function,If Statement,For Loop,我刚开始学习JavaScript,有一个非常基本的问题 我将创建一个我调用的函数printAnyRange(),它接受两个参数:rangeStart和rangeStop。我希望它返回一个字符串,其中所有数字在范围内以逗号分隔 如果rangeStart小于rangeStop它应该调用函数printRange() 如果rangeStart大于rangeStop它应该调用函数printRangeReversed() 我的问题是,我应该使用for循环来实现这一点,还是使用if else更好?鉴于您已经概

我刚开始学习JavaScript,有一个非常基本的问题

我将创建一个我调用的函数
printAnyRange()
,它接受两个参数:
rangeStart
rangeStop
。我希望它返回一个字符串,其中所有数字在范围内以逗号分隔

如果
rangeStart
小于
rangeStop
它应该调用函数
printRange()

如果
rangeStart
大于
rangeStop
它应该调用函数
printRangeReversed()


我的问题是,我应该使用
for
循环来实现这一点,还是使用
if else
更好?

鉴于您已经概述了它应该调用2个可能函数中的1个,除了使用if/else语句之外,真的没有其他选择。如果您想取消这两个函数调用,而是使用for循环(正向或反向),那么您仍然需要一个If(也可以说是else)语句来将它们联系在一起

if(rangeStart <= rangeStop)
{
    printRange(rangeStart, rangeStop);
}
else
{
    printReverseRange(rangeStart, rangeStop);
}
if(范围开始范围停止)
{
var开始=范围停止;
var停止=范围开始;
var inc=-1;
}
对于(变量i=start;inc==1?start=stop;i+=inc)
{
控制台日志(i);
}

您可以使用if-else仅选择要调用的方法。要生成范围,需要包含一个循环

您还可以遵循基本递归来避免创建3种不同的方法

var printRange = function (num1, num2) {

    /* If num2 is smaller, call same function with arguments reversed */
    if (num1 > num2) return printRange (num2, num1);

    /* Otherwise, calculate the stuff you want */
    var result = [];
    for (num1; num1 <= num2; num1++) {
        result.push(num1);
    }

    return result.join(',');
};
var printRange=函数(num1,num2){
/*如果num2较小,则调用参数相反的同一个函数*/
如果(num1>num2)返回打印范围(num2,num1);
/*否则,计算你想要的东西*/
var结果=[];

for(num1;num1)我们可以通过用递归完全替换for循环使其更加优雅,但这对于所有的数字对也应该是好的。“我们可以通过用递归完全替换for循环使其更加优雅”——引入更多的复杂性(和资源消耗)在我看来,没有任何需要或附加的好处都不是“优雅的”。递归函数,尤其是在这样的数学情况下,比循环更容易阅读。至少我发现了这一点。但它可能并不适用于所有人。
var printRange = function (num1, num2) {

    /* If num2 is smaller, call same function with arguments reversed */
    if (num1 > num2) return printRange (num2, num1);

    /* Otherwise, calculate the stuff you want */
    var result = [];
    for (num1; num1 <= num2; num1++) {
        result.push(num1);
    }

    return result.join(',');
};