JavaScript - 简化/缩短代码

时间:2016-01-21 11:06:11

标签: javascript

我有以下功能,我想用for循环简化,但不知道该怎么做。任何帮助都感激不尽。基本上,如果字段值为0或null,那么我的总值(字段)应为0,否则如果字段值从1到1000则总值变为5000.对于每1000(即1001到2000)我的总值应该增加50即5050.这应该持续到字段值达到200000并且总数为50000。

function calc56() {
    var56 = parseFloat(document.getElementById('units56').value - 0);

    if (var56 == '' || var56 == 0) {
        document.getElementById('amount56').value = 0;
    }
    else if (var56 < 1000) {
        document.getElementById('amount56').value = 5000;
    }
    else if ((var56 > 1000) && (var56 <= 2000)) {
        document.getElementById('amount56').value = 5050;
    }
    else if ((var56 > 2000) && (var56 <= 3000)) {
        document.getElementById('amount56').value = 5100;
    }
}

提前致谢。

1 个答案:

答案 0 :(得分:1)

function calc56() {
    var el = document.getElementById('units56'); //reference the dom element
    var val = +el.value; //convert to float

    if (!val) { //if no value, leave untouched

    } else if (val < 0) { //if value is less than 0, make it 0.
        el.value = 0;
    } else { //otherwise, calculate new value
        var mod = Math.floor(val / 1000); //calc how many 1000s fit in the value
        el.value = mod * 50 + 5000; //use at least 5000, and add 50 for every 1000
    }
}

我建议您也更改该功能的名称,因为它不是很有用。但是,这里的代码应该是最有效的,同时仍然保持可读性。

如果您需要更多说明,请随时在评论中提问!