Javascript 一个数字上的每个24的jQuery

Javascript 一个数字上的每个24的jQuery,javascript,jquery,if-statement,foreach,Javascript,Jquery,If Statement,Foreach,我有这个密码 if ($('input#grommet').is(':checked')) { if (width <= 96) { var grommetQTY = 4; } else if (width > 96) { grommetQTY = (Math.floor(width / 24)); grommetQTY = grommetQTY - 4; grommet

我有这个密码

if ($('input#grommet').is(':checked')) {
     if (width <= 96) {
           var grommetQTY = 4;
     } else if (width > 96) {
            grommetQTY = (Math.floor(width / 24));
            grommetQTY = grommetQTY - 4;
            grommetQTY = grommetQTY * 2;
            grommetQTY = grommetQTY +4;
     }
}
if($('input#grommet')。是(':checked')){
如果(宽度96){
套圈数量=(数学地板(宽度/24));
索环数量=索环数量-4;
索环数量=索环数量*2;
索环数量=索环数量+4;
}
}
我需要为96宽的每24英寸(2英尺)的索环数量增加2个。有办法做到这一点吗? 这试图实现的是为横幅提供定价。我们以2英尺的间隔增加了2个索环,但由于这是定制尺寸,它可能有96英尺宽,我不想为每两英尺的间隔编写一个else-if语句。我希望有一种方法,每次宽度比标准的96英寸宽度再增加24英寸时,数量只增加两个,因此如果宽度为96英寸或更小,数量为4,120为6,144为8,等等

Math.pow(2,索环数量)*(Math.floor(96/24))

2至96英寸内每24英寸的密封圈数量。这就是你需要的吗

Math.pow(a,b)
a
赋予
b


编辑:

var qty = 4 + ((width > 96) ? ((Math.floor((width - 96) / 24) * 2) : 0);
var数量=(数学楼层(n/24))*2

其中
n
是像素(在您的示例中为96)


编辑:

var qty = 4 + ((width > 96) ? ((Math.floor((width - 96) / 24) * 2) : 0);

是吗?

这里没有给出这个方程,而是一个for循环,它可以满足您的需要:

var grommetQTY = 0;
for(var i = 96; i < n; i++)
    if(i%24 == 0) 
        grommetQTY += 2;
var-grommetQTY=0;
对于(变量i=96;i
其中n是长度。这是非常低效的,只需执行以下操作即可加快速度:

var grommetQTY = 0;
for(var i = 96; i < n; i+=24)
    grommetQTY += 2;
var-grommetQTY=0;
对于(变量i=96;i
这更好,但仍然不理想。在你的情况下,理想的解决方案是一个方程


另一方面,如果我没有弄错的话,这个等式是
Math.floor(Math.max((n-96),0)/24)*2+4

你可以这样做:

var extra = width - 96
var grommetQTY = 4;
if (extra > 0) {
  grommet += Math.floor((extra / 24)) * 2;
}
变量
extra
包含您想要考虑的额外长度,顾名思义。如果它是0或更低,这意味着它是96或更低



然后,对于
extra>0
您也可以将其更改为
extra>=24
,因为任何小于24的额外值都将返回0。

您是否可以只执行
grommetQTY=Math.floor(96/24)*2
?了解模块i am lost-12?,24?2,96,这么多数字。你能解释一下你到底想收到什么吗?编辑以澄清,标题编辑为24请创建一个。你得到了大部分,但在目前的状态下很难理解这个问题。最后,我需要在96英寸以上每24英寸的数量上加2。所以如果宽度是96或更少,数量是4,在120它的6,在144它的8,等等。我编辑它。是这样吗?我建议你学一些基本的算术。这更像是一个数学问题,而不是一个JavaScript问题。或者用jQuery来解释这个问题。@Sharkn8do,在解释了为什么答案是错误的之后,等待编辑,然后要求关闭它。关闭答案是为了低质量的答案,而不是错误的答案。至少在很明显不会有编辑修改之前,我想他是说我的答案很接近。没有d,这意味着我几乎给了他答案。如果这是我的意思,我很抱歉。对我来说,这听起来像是“关闭这个答案,因为……”你在
if
语句中赋值。我的错。只是快速输入了一些伪密码。固定的it@Sharkn8do检查我答案的最后一行,找出一个可以处理所有情况的等式。不要把代码放在这里,只需编辑你的问题。谁也看不懂!请补充你的答案。这并不是一个完整的答案。@David作为解释,或者?对代码的解释会很好,OP可能需要更多的解释。这,真的解释了我的意思。@davidachibald当算术对任何受过高中数学教育的人来说都是显而易见的时候,真的有必要提供详细的解释吗?不需要争论,这是一个意见的问题。我觉得在任何情况下,有些东西是可以改进的,应该改进。