【问题标题】:Javascript while loop with if statements [closed]带有if语句的Javascript while循环[关闭]
【发布时间】:2013-04-20 03:46:45
【问题描述】:

我正在尝试在 Javascript 中创建一个 while 循环。我有一个名为 numbers 的数组,其中包含 5 个数字。我还有一个名为 bigone 的变量,它设置为 0。我正在尝试编写一个带有 if 语句的 while 循环,该语句将数组中的每个值与 bigone 进行比较。当数组插槽中的数字大于 bigone 时,我想将该数字分配给 bigone。我想不通。这是我到目前为止所拥有的,但它不会工作。是的,这是家庭作业,不,我不是在寻求答案,只是为了获得一些正确方向的指导。这是据我所知:

while ( numbers.length < 5 ) {
    if ( numbers > bigone ) {
    bigone = numbers
    }
  }

有什么想法吗?

【问题讨论】:

    标签: javascript if-statement while-loop


    【解决方案1】:

    实现一个计数器,以便您可以访问数组中的值。

    var i = 0;
    while(numbers.length < 5 && i < numbers.length)
    {
        if(numbers[i] > bigone)
            bigone = numbers[i];
    
        i++;
    }
    

    这是同一个循环,但带有for。不知道为什么要检查数组中是否有 5 个或更少的元素,但是可以。这会检查每次迭代的长度。

    for(var i = 0; numbers.length < 5 && i < numbers.length; i++)
    {
        if(numbers[i] > bigone)
            bigone = numbers[i];
    }
    

    只检查一次的更好方法是将for 循环包装在if 语句中,如下所示:

     if(numbers.length < 5)
     {
         for(var i = 0; i < numbers.length; i++)
         {
             if(numbers[i] > bigone)
                 bigone = numbers[i];
         }
     }
    

    【讨论】:

      【解决方案2】:

      我假设您正在尝试查找数组中的最大数字。 另一种方法是使用 forEach 方法,该方法将回调函数作为参数。对数组的每个元素执行一次回调。

      var numbers = [4, 12, 3, 5, 1]
      var big  = 0;
      numbers.forEach(function(number) { if(number > big) big = number; });
      console.log(big); //Prints 12
      

      More on Array.forEach

      【讨论】:

      • 最佳解决方案。但是我想提一下它只是 ES5,例如无法在 IE 8 及更低版本中运行。
      猜你喜欢
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      相关资源
      最近更新 更多