gpt4 book ai didi

javascript - 控制台日志并从多个 switch 语句添加值

转载 作者:行者123 更新时间:2023-12-02 23:28:28 25 4
gpt4 key购买 nike

我正在尝试从 switch 语句中添加多个值(valuebreakMonValuefinishMonValue),以便我可以控制台。记录这些值相加,并想知道这是否可能?

enter image description here

未定义 startMonTimeStr 变量

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }

function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

var timeStringToValue = function timeStringToValue(timeStr) {
var _timeStr$match = timeStr.match(/(\d+):(\d+) ([ap]m)/),
_timeStr$match2 = _slicedToArray(_timeStr$match, 4),
hours = _timeStr$match2[1],
minutes = _timeStr$match2[2],
ampm = _timeStr$match2[3];

var ampmHourModifier = ampm === 'pm' ? 12 : 0;
return Number(hours) + ampmHourModifier + minutes / 60;


};

var startMonTimeStr = $('.start-time-monday option:selected').text();
var startMonValue = timeStringToValue(startMonTimeStr);


console.log(timeStringToValue(StartMonValue));
console.log(timeStringToValue('3:30 pm'));

它们的布局如下:

$('.start-time-monday').each(function(){
$(this).change(function(){

var monTime =


$('.start-time-monday').each(function(){
$(this).change(function(){

var monTime = $('.start-time-monday option:selected').text();
var value = "";

switch(monTime){
case "7:00 am":
value = 7.00;
break;
case "7:15 am":
value = 7.25;
break;
case "7:30 am":
value = 7.50;
break;
case "7:45 am":
value = 7.75;
break;
case "8:00 am":
value = 8.00;
break;
case "8:15 am":
value = 8.25;
break;
case "8:30 am":
value = 8.50;
break;
case "8:45 am":
value = 8.75;
break;
case "9:00 am":
value = 9.00;
break;
case "9:15 am":
value = 9.25;
break;
case "9:30 am":
value = 9.50;
break;
case "9:45 am":
value = 9.75;
break;
case "10:00 am":
value = 10.00;
break;
case "10:15 am":
value = 10.25;
break;
case "10:30 am":
value = 10.50;
break;
case "10:45 am":
value = 10.75;
break;
case "11:00 am":
value = 11.00;
break;
case "11:15 am":
value = 11.25;
break;
case "11:30 am":
value = 11.50;
break;
case "11:45 am":
value = 11.75;
break;
case "12:00 pm":
value = 12.00;
break;
case "12:15 pm":
value = 12.25;
break;
case "12:30 pm":
value = 12.50;
break;
case "12:45 pm":
value = 12.75;
break;
case "1:00 pm":
value = 13.00;
break;
case "1:15 pm":
value = 13.25;
break;
case "1:30 pm":
value = 13.50;
break;
case "1:45 pm":
vaue = 13.75;
break;
case "2:00 pm":
value = 14.00;
break;
case "2:15 pm":
value = 14.25;
break;
case "2:30 pm":
value = 14.50;
break;
case "2:45 pm":
value = 14.75;
break;
case "3:00 pm":
value = 15.00;
break;
case "3:15 pm":
value = 15.25;
break;
case "3:30 pm":
value = 15.50;
break;
case "3:45 pm":
value = 15.75;
break;
case "4:00 pm":
value = 16.00;
break;
case "4:15 pm":
value = 16.25;
break;
case "4:30 pm":
value = 16.50;
break;
case "4:45 pm":
value = 16.75;
break;
case "5:00 pm":
value = 17.00;
break;
case "5:15 pm":
value = 17.25;
break;
case "5:30 pm":
value = 17.50;
break;
case "5:45 pm":
value = 17.75;
break;
case "6:00 pm":
value = 18.00;
break;
case "6:15 pm":
value = 18.25;
break;
case "6:30 pm":
value = 18.50;
break;
case "6:45 pm":
value = 18.75;
break;
case "7:00 pm":
value = 19.00;
break;
case "7:15 pm":
value = 19.25;
break;
case "7:30 pm":
value = 19.50;
break;
case "7:45 pm":
value = 19.75;
break;
default:
value = '0';
break;
}

//var startTimeMon = timeSwitch(monTime) ;
console.log(value, 'Monday Start time value');
});

});


$('.meal-break-monday').each(function(){
$(this).change(function(){

var breakMonTime = $('.meal-break-monday option:selected').text();
var breakMonvalue = "";

switch(breakMonTime){
case "15 mins":
breakMonvalue = 0.25;
break;
case "30 mins":
breakMonvalue = 0.50;
break;
case "45 mins":
breakMonvalue = 0.75;
break;
case "60 mins":
breakMonvalue = 1.00;
break;
default:
value = '0';
break;
}

//var startTimeMon = timeSwitch(monTime) ;
console.log(breakMonvalue, 'Mon BREAK time value');
});


});





//finish time monday
$('.finish-time-monday').each(function(){
$(this).change(function(){

var finishMonTime = $('.finish-time-monday option:selected').text();
var finishMonvalue = "";

switch(finishMonTime){
case "7:00 am":
finishMonvalue = 7.00;
break;
case "7:15 am":
finishMonvalue = 7.25;
break;
case "7:30 am":
finishMonvalue = 7.50;
break;
case "7:45 am":
finishMonvalue = 7.75;
break;
case "8:00 am":
finishMonvalue = 8.00;
break;
case "8:15 am":
finishMonvalue = 8.25;
break;
case "8:30 am":
finishMonvalue = 8.50;
break;
case "8:45 am":
finishMonvalue = 8.75;
break;
case "9:00 am":
finishMonvalue = 9.00;
break;
case "9:15 am":
finishMonvalue = 9.25;
break;
case "9:30 am":
finishMonvalue = 9.50;
break;
case "9:45 am":
finishMonvalue = 9.75;
break;
case "10:00 am":
finishMonvalue = 10.00;
break;
case "10:15 am":
finishMonvalue = 10.25;
break;
case "10:30 am":
finishMonvalue = 10.50;
break;
case "10:45 am":
finishMonvalue = 10.75;
break;
case "11:00 am":
finishMonvalue = 11.00;
break;
case "11:15 am":
finishMonvalue = 11.25;
break;
case "11:30 am":
finishMonvalue = 11.50;
break;
case "11:45 am":
finishMonvalue = 11.75;
break;
case "12:00 pm":
finishMonvalue = 12.00;
break;
case "12:15 pm":
finishMonvalue = 12.25;
break;
case "12:30 pm":
finishMonvalue = 12.50;
break;
case "12:45 pm":
finishMonvalue = 12.75;
break;
case "1:00 pm":
finishMonvalue = 13.00;
break;
case "1:15 pm":
finishMonvalue = 13.25;
break;
case "1:30 pm":
finishMonvalue = 13.50;
break;
case "1:45 pm":
finishMonvaue = 13.75;
break;
case "2:00 pm":
finishMonvalue = 14.00;
break;
case "2:15 pm":
finishMonvalue = 14.25;
break;
case "2:30 pm":
finishMonvalue = 14.50;
break;
case "2:45 pm":
finishMonvalue = 14.75;
break;
case "3:00 pm":
finishMonvalue = 15.00;
break;
case "3:15 pm":
finishMonvalue = 15.25;
break;
case "3:30 pm":
finishMonvalue = 15.50;
break;
case "3:45 pm":
finishMonvalue = 15.75;
break;
case "4:00 pm":
finishMonvalue = 16.00;
break;
case "4:15 pm":
finishMonvalue = 16.25;
break;
case "4:30 pm":
finishMonvalue = 16.50;
break;
case "4:45 pm":
finishMonvalue = 16.75;
break;
case "5:00 pm":
finishMonvalue = 17.00;
break;
case "5:15 pm":
finishMonvalue = 17.25;
break;
case "5:30 pm":
finishMonvalue = 17.50;
break;
case "5:45 pm":
finishMonvalue = 17.75;
break;
case "6:00 pm":
finishMonvalue = 18.00;
break;
case "6:15 pm":
finishMonvalue = 18.25;
break;
case "6:30 pm":
finishMonvalue = 18.50;
break;
case "6:45 pm":
finishMonvalue = 18.75;
break;
case "7:00 pm":
finishMonvalue = 19.00;
break;
case "7:15 pm":
finishMonvalue = 19.25;
break;
case "7:30 pm":
finishMonvalue = 19.50;
break;
case "7:45 pm":
value = 19.75;
break;
default:
value = '0';
break;
}

//var startTimeMon = timeSwitch(monTime) ;
console.log(finishMonvalue, 'Mon FINISH time value');
});


});

最佳答案

用数学方法将时间字符串解析为数字可能会更优雅,例如:

const timeStringToValue = (timeStr) => {
const [, hours, minutes, ampm] = timeStr.match(/(\d+):(\d+) ([ap]m)/);
const ampmHourModifier = ampm === 'pm' ? 12 : 0;
return Number(hours) + ampmHourModifier + (minutes / 60)
};

console.log(timeStringToValue('10:00 am'));
console.log(timeStringToValue('3:30 pm'));

然后你可以调用它:

const startMonTimeStr = $('.start-time-monday option:selected').text();
const startMonValue = timeStringToValue(startMonTimeStr);

const finishMonTimeStr = $('.finish-time-monday option:selected').text();
const finishMonValue = timeStringToValue(finishMonTimeStr);

switch 在大多数情况下都是不必要的冗长和丑陋,这也不异常(exception)。

如果您想将所有总计相加,请更改计算每个小计,例如:

const getBreakTotal = () => {
const minutes = $('.meal-break-monday option:selected').text().match(/^\d+/)[0];
return minutes / 60;
};
const getAllTotals = () => {
const startTotal = timeStringToValue($('.start-time-monday option:selected').text());
const breakTotal = getBreakTotal();
const finishTotal = timeStringToValue($('.finish-time-monday option:selected').text());
console.log(startTotal + breakTotal + finishTotal);
};

$('.start-time-monday, .meal-break-monday, .finish-time-monday').on('change', getAllTotals);

关于javascript - 控制台日志并从多个 switch 语句添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56623537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com