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

时间:2017-01-04 22:59:08

标签: javascript jquery arrays if-statement input

我正在试图弄清楚如何将此代码缩短为循环左右。

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

<input type="number" id="people" name="people" value="0"> 
<input type="text"  id="upprice" name="upprice" value="0">

目前的情况是我如何解决它:

var upPrice = 0,
    people  = 0;

$('#people').on('change', function() {
    countValue = this.value;

    if (countValue >= 10) {
        upPrice = 1000;
    } 

    if (countValue >= 20) {
        upPrice = 2000;
    } 

    if (countValue >= 30) {
        upPrice = 2500;
    } 

    if (countValue >= 40) {
        upPrice = 3000;
    } 

    $('#upprice').attr('value', upPrice);
});

从技术上讲,这是一个计算,每10步发射一次。首先是上升步骤的值是1000,接下来的两个500等等......它会上升到250.

我想最合理的方法是循环,对吧?不幸的是,我无法正确使用循环,任何人都可以帮助我或者给出一个如何正确解决这个问题的建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用表格 -

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

然后

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

根据评论,在countValue&gt;之后“开始”upPrice 50

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