将if条件转换为具有动态乘法数的函数

时间:2015-06-30 22:35:22

标签: javascript math

我有一个下拉菜单,已列出多年。选择一年。该值是根据选择年份中的月份计算的,如果有人选择5年,然后 5 * 12 - 月5年,那么该值除以一定数量。我的循环工作正常但是,如果我按每个下拉条件8年,8个循环和每个循环中的每一个,每月的数量增加并计算发生。有没有一种简单的方法可以做到这一点,而不是我一次又一次地循环它,JSFiddle在这里。

var yr = document.getElementById("year");
var selected = yr.options[yr.selectedIndex].value;
if(selected == 10){
    months = 12 * 10;
    amount = 68/months;
    alert(amount)
}

3 个答案:

答案 0 :(得分:1)

你不需要所有这些ifs,你可以这样做:

var yr = document.getElementById("year");
var selected = yr.options[yr.selectedIndex].value;

months = 12 * parseInt(selected);
amount = 68/months;
alert(amount);

https://jsfiddle.net/ovdcd89m/2/

答案 1 :(得分:1)

我不完全确定我是否理解你的问题,但我认为这可能是你想要完成的事情:

$(function(){
    $('#year').change(function(){
        var year = document.getElementById("year").value;
        year = parseInt(year);
        alert( 68/(12*year) );
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label for="year">Year</label>
<select id="year">
    <option value="1">1</option>
    <option value="5">5</option>
    <option value="10" selected>10</option>
    <option value="15">15</option>
    <option value="30">30</option>
    <option value="35">35</option>
    <option value="40">40</option>
</select>

答案 2 :(得分:0)

是的,您只需要将选项中的值转换为数字,然后才能进行数学运算。对于任何选定的值,请尝试:

months = 12 * parseInt(selected, 10);
amount = 68/months;
alert(amount);