我在JavaScript开关语句中做错了什么?
下面我有各种输入字段,我在最终结果中根据初始收入值计算月收益和年收益 我试图做的是添加单选按钮来选择天气,他们插入的值是每周、每月等 我举了一个例子,我需要用户用复选框来决定收入的第一个值我在JavaScript开关语句中做错了什么?,javascript,switch-statement,Javascript,Switch Statement,下面我有各种输入字段,我在最终结果中根据初始收入值计算月收益和年收益 我试图做的是添加单选按钮来选择天气,他们插入的值是每周、每月等 我举了一个例子,我需要用户用复选框来决定收入的第一个值 function computeBudget() { var income = document.getElementById('income').value; switch(rate) { case weekly:
function computeBudget() {
var income = document.getElementById('income').value;
switch(rate) {
case weekly:
this.add((.value * 52) / 12);
break;
case biWeekly:
this.add((.value * 26) / 12);
break;
}
var grocery_expenses = document.getElementById('grocery_expenses').value;
var car_insurance = document.getElementById('car_insurance').value;
var home_mortgage = document.getElementById('home_mortgage').value;
var home_utilities = document.getElementById('home_utilities').value;
var life_insurance = document.getElementById('life_insurance').value;
var monthgain = (income - grocery_expenses - car_insurance - home_mortgage - home_utilities -life_insurance).toFixed(2);
monthgain = monthgain.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
document.getElementById('monthgain').innerHTML = "Monthly Net Gain = $"+monthgain ;
var yeargain = ((income - grocery_expenses - car_insurance - home_mortgage - home_utilities -life_insurance) * 12).toFixed(2);
yeargain = yeargain.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
document.getElementById('yeargain').innerHTML = "Yearly Net Gain = $"+ yeargain;
}
尝试向大小写值添加引号,如:
switch(rate) {
case "weekly": // added quotes
this.add((.value * 52) / 12);
break;
case "biWeekly": // added quotes
this.add((.value * 26) / 12);
break;
}
您需要创建一个周乘数变量,该变量将保存周的转换值 然后,您需要打开单选按钮的值,并为您想要处理的每个情况创建一个案例 例如:
var weekMultiplier = 0;
switch(rate) // a string value representing the type
{
case "weekly":
weekMultiplier = 1;
break;
case "biWeekly":
weekMultiplier = 0.5;
break;
case "monthly":
weekMultiplier = 0.25;
break;
}
var weeklyIncome = income * weekMultiplier;
var weeklyCarInsurance = document.getElementById('car_insurance').value * weekMultiplier;
然后用这个乘数乘以你的输入。如果尚未转换为周值,则对要包含在计算中的每个值执行此操作
例如:
var weekMultiplier = 0;
switch(rate) // a string value representing the type
{
case "weekly":
weekMultiplier = 1;
break;
case "biWeekly":
weekMultiplier = 0.5;
break;
case "monthly":
weekMultiplier = 0.25;
break;
}
var weeklyIncome = income * weekMultiplier;
var weeklyCarInsurance = document.getElementById('car_insurance').value * weekMultiplier;
现在你可以减去它们
var weeklyGain = weeklyIncome - weeklyCarInsurance;
并乘以所需格式的增益:
var monthlyGain = weeklyGain * 4;
var yearlyGain = weeklyGain * 52;
收入值是否也会根据单选按钮发生变化?是否可以按周/月计算?是否应按切换收入?否应根据单选按钮计算收入值,然后当我看到他每个月总共储蓄了多少时,它将与我使用年度计算时的结果一致。那么利率变量是什么?你觉得呢,value*52有什么作用?看起来像是语法错误。对不起,他们输入的内容应该附在单选按钮上,因此,如果我每2个月收到一次支票,我会在输入字段中输入4000,然后选中2个月单选按钮,该按钮将在趋势结果中计算,以显示我每月和每年有多少额外的储蓄。有没有一种方法可以使用名称=收入的分组输入,因为我是被建议的这在另一个网站上,但似乎没有改变结果。。如果失败了,我会按照你描述的方式重写代码,谢谢你的老板!您可以将weekMultiplier值放置在每个单选按钮的值中。然后可以省略switch语句并从中获取乘数