javascript - 如何在 javascript 中创建时间来评估函数?
问题描述
我正在尝试创建一个函数,它选择一个时间并将以分钟为单位的时间转换为一个值。这是我的代码,我在控制台日志中得到了一个打字错误。
请查看此小提琴以查看我收到的错误 https://jsfiddle.net/tjhunt03/npLxq0hm/16/
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 mealBreakStringToValue = function mealBreakStringToValue(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 minutesModifier = minutes === 'mins' ? 15 : 30;
return Number(hours) + ampmHourModifier + minutes / 60;
};
console.log(mealBreakStringToValue('30 mins'));
解决方案
根据我从评论中了解到的情况,您需要将字符串 '30 mins' 转换为等效的小时数。下面是执行此操作的代码。您需要使用与用于解析“am/pm”字符串的正则表达式不同的正则表达式。
var mealBreakStringToValue = function mealBreakStringToValue(mealBreak) {
const mealBreakMatch = mealBreak.match(/(\d{1,2}) mins/i);
const minutes = mealBreakMatch[1];
return Number(minutes / 60);
};
console.log(mealBreakStringToValue('30 mins'));
推荐阅读
- ruby-on-rails - Rails 5.2.3 到 6.0.0 升级
- python-3.x - 恢复原始换行符 pandas \n
- javascript - addEventListener 在 PHP 中为 null,但适用于 HTML
- wordpress - 在 Woocommerce 3+ 中替换 woocommerce_add_order_item_meta 钩子
- python - 它总是在 .argparse 中显示错误?
- c++ - 给定这两种类型,我可以确定虚函数是否已被覆盖?
- node.js - 如何在executeJavaScript中出现单个错误后阻止BrowserWindow中断?
- asp.net-core - sendgrid 如何在没有电子邮件密码的情况下工作?
- apache-spark - rdd中的子字符串使用pyspark
- material-ui - 更改 MUI TextField 边框颜色