Javascript - 使此代码高效

时间:2015-05-15 16:20:49

标签: javascript

这是一个相对简单的问题,但我想看看其他人如何解决以下问题:

  1. 用户可以在文本框中输入(x)数量 txtUserInput
  2. 所以例如UserInput = 14

    1. 1个盒子最多可包含4个项目。
    2. 所以根据上面的txtUserInput,我希望程序计算出需要多少个盒子(在这种情况下答案是4个盒子,最后一个盒子里剩下2个空格。

      下面的

      是基本形式的代码示例:

      var itemsCount = txtUserInput;
      var boxes = 0;
      
      if (itemsCount <=4) {
      boxes ++;
      }
      
      else if (itemsCount <=8 && >4) {
      boxes += 2;
      }
      

      正如你所看到的,我可以一遍又一遍地重复这一点以获得正确的结果,但它会变得非常乏味,而且比它需要的时间长得多......

      所以使用JavaScript我如何将它放入数组/循环并获取框以给出我想要的输出?

      谢谢你的帮助

3 个答案:

答案 0 :(得分:5)

不要循环,进行划分然后向上舍入:

var boxes = Math.ceil(itemsCount / 4);

答案 1 :(得分:1)

将项目数除以框的大小(在本例中为4)后,您可以使用Math.ceil进行向上舍入;

var boxes = Math.ceil(txtUserInput/4);

Javascript的类型强制将自动处理空输入(如果txtUserInput为空)为零。

答案 2 :(得分:1)

通过检查需要多少个盒子的方法,您可以使用循环而不是为所有可能数量的盒子设置代码:

var boxes = 0;
while (itemsCount > 0) {
  boxes++;
  itemsCount -= 4;
}

但是,您不需要循环。您可以将项目数除以4,并确保结果中的任何分数都可以通过四舍五入来使用另一个框:

var boxes = Math.ceil(itemsCount / 4);

例如,将14除以4得到结果3.5,向上舍入得到4。