我在 JavaScript switch 语句中做错了什么

What am I doing wrong in my JavaScript switch statement?

本文关键字:错了 什么 语句 JavaScript switch 我在      更新时间:2023-09-26

下面我有各种输入字段,我根据初始收入值在最终结果中计算月收益和年收益。

我正在尝试做的是添加单选按钮来选择他们插入的值是每周、每月等的天气......

我以收入的第一个值为例,我需要用户通过复选框来决定......

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 weeklyGain = weeklyIncome - weeklyCarInsurance;

并将所需格式的增益乘以:

var monthlyGain = weeklyGain * 4;
var yearlyGain = weeklyGain * 52;