【发布时间】:2015-05-17 23:29:44
【问题描述】:
我正在用 Javacsript 编写一个函数,它返回两个变量,Consume 和 Burn。这是函数:
function calories(goal, goalWeight, activityLevel, days, gender, age, height, weight){
var bmr=0;
var consume=0;
var burn=0;
if (gender==='F'){
bmr = 655 + (4.3*weight) + (4.7*height) - (4.7*age);
}
if (gender==='M'){
bmr = 66 + (6.3*weight) + (12.9*height) - (6.8*age);
}
if (activityLevel==='Inactive'){
consume=bmr+(0.2*bmr);
}
if (activityLevel==='Relatively Active'){
consume=bmr+(0.3*bmr);
}
if (activityLevel==='Very Active'){
consume=bmr+(0.4*bmr);
}
if (goal==='Lose'){
if((goalWeight/days)<=0.06){
consume=consume-200;
}
if((goalWeight/days)<=0.15){
consume=consume-100;
}
if (activityLevel==='Inactive'){
burn=250;
}
if (activityLevel==='Relatively Active'){
burn=150;
}
if (activityLevel==='Very Active'){
burn=100;
}
}
if(goal==='Gain'){
if((goalWeight/days)<=0.06){
consume=consume+200;
}
if((goalWeight/days)<=0.15){
consume=consume+100;
}
if (activityLevel==='Inactive'){
burn=200;
}
if (activityLevel==='Relatively Active'){
burn=100;
}
if (activityLevel==='Very Active'){
burn=100;
}
}
if(goal==='Maintain'){
burn=100;
}
consume=Math.round(consume);
window.alert(consume);
window.alert(burn);
return [consume,burn];
}
在窗口框中,函数每次都返回正确的消费值,但由于某种原因,burn 总是返回为零。如果我没有在 if 语句之外声明它,它会以未定义的形式返回。是否有某些原因我不能在 if 语句中为这个变量分配数字?我已经使用 window.alert() 来测试是否正在访问正确的 if 语句,并且每次它都返回我想要的内容,但是 burn 从未被赋值,我不知道为什么!感谢您的任何建议
编辑 感谢您到目前为止的答案。一个示例输入是:
var calories = calories(goal, healthyWeight, activityLevel, days, gender, age, height, weight);
在哪里:
goal = 'Lose'
healthyWeight = 128
activityLevel = 'Inactive'
days = 180
gender = 'M'
age = 20
height = 63
weight = 160
这将按预期返回消耗为 2101,并返回燃烧为 0
目前我对返回值所做的只是:
window.alert(consume);
window.alert(burn);
测试它们是什么值,但是一旦函数正常工作,我将使用
var consume=calories.consume;
var burn=calories.burn;
document.getElementById("consume").innerHTML = consume;
document.getElementById("burn").innerHTML = burn;
在浏览器之外显示它们的函数
【问题讨论】:
-
你能说明你是如何使用返回值的吗?
标签: javascript if-statement variable-assignment