我正在试图弄清楚如何将此代码缩短为循环左右。
基本上我有两个需要填写的输入字段:
<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.
我想最合理的方法是循环,对吧?不幸的是,我无法正确使用循环,任何人都可以帮助我或者给出一个如何正确解决这个问题的建议吗?
答案 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)];