为什么我在这个函数中没有定义
Why am I getting undefined in this function?
我遇到了一个问题,保姆根据时间的不同赚取不同的费率:
保姆-不早于下午5:00开始-不迟于凌晨4点离开-从开始到就寝,每小时可获得12美元的报酬-从睡觉到午夜,每小时可获得8美元的报酬-从午夜到工作结束,工资为每小时16美元-获得全小时(无小数小时(的报酬
我想知道,当我在这个函数中通过时间时,为什么我会得到未定义?
function calculatePay (startTime, bedTime, endTime){
function formatTime(time){
if (time.indexOf('00') === -1){
time = Number(time.split(":").shift()) + 1;
} else {
time = Number(time.split(":").shift());
}
if (time < 5) {
time = time + 12;
}
return time;
};
var start = formatTime(startTime);
var bedtime = formatTime(bedTime);
var end = formatTime(endTime);
var scheduleRange = {
start: 5,
lateNight: 12,
end: 16,
}
var payrate = {
beforeBed: 12,
sleeping: 8,
afterMidnight: 16
}
var calculateBeforeBed = function (start, bedtime) {
if (bedtime > start && bedtime <= scheduleRange.lateNight){
var beforeBedEarned = (bedtime - start) * payrate.beforeBed;
return beforeBedEarned;
} else if (bedtime > scheduleRange.lateNight) {
var beforeBedEarned = (scheduleRange.lateNight - start) * payrate.beforeBed;
return beforeBedEarned;
} else {
return 0;
}
};
var calculateAfterBed = function (start, bedtime, end) {
if (bedtime > start && bedtime <= scheduleRange.lateNight && bedtime <= end) {
var afterBedEarned = (scheduleRange.lateNight - bedtime) * payrate.sleeping;
return afterBedEarned;
} else if (bedtime <= start && end <= scheduleRange.lateNight){
afterBedEarned = (end - start) * payrate.sleeping;
return afterBedEarned;
} else if (bedtime <= start && end > scheduleRange.lateNight){
afterBedEarned = (scheduleRange.lateNight - start) * payrate.sleeping;
return afterBedEarned;
}
else {
return 0;
}
};
var calculateAfterMidnight = function (start, end) {
if (end > scheduleRange.lateNight && start <= scheduleRange.lateNight) {
var lateNightEarned = (end - scheduleRange.lateNight) * payrate.afterMidnight;
return lateNightEarned;
} else if (end > scheduleRange.lateNight && start > scheduleRange.lateNight) {
lateNightEarned = (end - start) * payrate.afterMidnight;
return lateNightEarned;
} else {
return 0;
}
};
function finalInvoice (start, bedtime, end){
if(start >= scheduleRange.start && end <= scheduleRange.end){
var pay = calculateBeforeBed(start, bedtime) + calculateAfterBed(start, bedtime, end)+ calculateAfterMidnight(start, end);
return pay;
};
};
}
calculatePay("7:00", "10:00", "1:00");
因为您的函数没有return
语句
function voidsum(a, b, c) {
var result = a + b + c;
}
function sum(a, b, c) {
var result = a + b + c;
return result;
}
console.log('voidfn', voidsum(123, 321, 231));
console.log('sum', sum(123, 321, 231));
相关文章:
- 用嵌套函数和默认函数定义函数
- 自定义函数中的光标位置
- Jquery未定义函数正在停止其他操作
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- javascript无法重新定义函数内部的全局对象
- 定义函数时,如何捕获外部变量的当前值
- 能够在定义函数表达式之前使用它
- Google Sheet自定义函数返回0
- Javascript-defineProperty和直接在对象上定义函数之间的区别
- 其中是自定义函数中的属性
- 创建自定义函数以在函数上运行完整的多选下拉列表
- Google Sheets自定义函数条件格式
- 为什么当我需要位于顶部的函数时,在脚本中的某些点上没有定义函数
- 使用变量的名称,然后为该变量定义函数
- dalek回调或自定义函数
- 如何在angular ui模态控制器中定义函数
- Uncaught ReferenceError:尝试在Android网络视图中访问时未定义函数
- UI网格:如何从自定义函数访问MODEL_COL_FIELD
- 在构造函数中定义函数会比将其附加到原型消耗更多的内存
- 使用 Javascript 中的函数重新定义函数