Javascript 循环而不是if语句进行计算

Javascript 循环而不是if语句进行计算,javascript,jquery,arrays,if-statement,input,Javascript,Jquery,Arrays,If Statement,Input,我正试图找出如何将代码缩短成一个循环 基本上,我有两个需要填写的输入字段: <input type="number" id="people" name="people" value="0"> <input type="text" id="upprice" name="upprice" value="0"> 从技术上讲,这是一个每10步发射一次向上充电的计算。第一步是上升电荷的值为1000,第二步是500,依此类推……然后上升到250 我想最合理的方法是循环,对吗?不

我正试图找出如何将代码缩短成一个循环

基本上,我有两个需要填写的输入字段:

<input type="number" id="people" name="people" value="0"> 
<input type="text"  id="upprice" name="upprice" value="0">
从技术上讲,这是一个每10步发射一次向上充电的计算。第一步是上升电荷的值为1000,第二步是500,依此类推……然后上升到250


我想最合理的方法是循环,对吗?不幸的是,我无法正确地进行循环,有人能帮我解决这个问题或给我一个建议吗?

您可以使用一个表-

var tbl = [0, 1000, 2000, 2500, 3000, and so on];
然后

根据评论,在countValue>50后“启动”upPrice

upPrice = tbl[Math.max(Math.min(Math.floor((countValue - 50) / 10), 25), 0)];

你需要一个方程式,而不是一个循环。
接下来的两个500等等
所以它是1000200025003000。。。下一个增量是多少?“等等”对下一步没什么帮助,更不用说下21步了(我假设250是您检查的最大countValue),谢谢您的快速响应!上面的代码片段首先用于可视化。步骤是:countValue 0-50,upprice=0/countValue 50-100,upprice=1000(每10步)/countValue 100-150,upprice=500(每10步),countValue 150-250,upprice=300(每10步)。这一步计算得很好。如果我想在#人的价值达到50后开始每10步计算一次呢?尝试了if语句,但它直接执行5000,而不是从0开始执行。不知道人们与这个问题有什么关系。。。哦,等等,我现在明白了。。。你有没有试过upPrice=tbl[Math.min(Math.floor((countValue-50)/10),25]是的,刚刚试过。upprice是NaN,直到达到前10个,然后它执行每一个步骤。哦,是的,需要执行
upprice=tbl[Math.max(Math.min(Math.floor((countValue-50)/10),25),0]将索引正确限制为0…25
upPrice = tbl[Math.min(Math.floor(countValue / 10), 25)];
upPrice = tbl[Math.max(Math.min(Math.floor((countValue - 50) / 10), 25), 0)];