是否可以从返回5个值的女巫返回1个值? 示例仅包含两个值:
function checkNum(x){
if(x>0){
if(x>59){
return "green" , "pass";
}
else{
return "red" , "try again";
}
}
else{
return "yellow","play the game";
}
}
console.log(checkNum(33));
如您所见,它仅返回2nd val女巫,请重试...
如何得到这样的东西:对不起,“重试”,您是“红色”!
还是我必须复制每个函数并为每个返回状态更改名称?
请给个线索。
答案 0 :(得分:2)
有多种方法可以实现您的想法,例如,您可以创建一个字符串并像这样返回它:
function checkNum(x){
if(x>0){
...
else{
return 'Try again, ' + 'you are red !!!'
}
}
...
}
此外,请记住,您只能从函数中返回一个值,并且当您像执行许多值或其他任何javascript表达式一样进行返回时,只有最右手的表达式才是返回值
function aLotOfReturn() {
return 'one', 1 + 2, {}, 'four';
}
aLotOfReturn() // returns 'four'
如果要返回多个值,则可以使用满足以下需求的不同类型的原语:key-value object或array
像这样
function returnMultipleColors() {
return ['blue', 'red', 'yellow'];
}
let colors = returnMultipleColors();
您现在有了一系列颜色,可以选择使用.forEach方法或many more对其进行迭代,以对每个值进行所需的操作。
更新:这是一篇文章,说明了一些有用的javascript数组和对象方法:https://codeburst.io/useful-javascript-array-and-object-methods-6c7971d93230
答案 1 :(得分:2)
返回数组可能是您想要的:
function checkNum(x) {
if (x > 0) {
if (x > 59) {
return ["green", "pass"];
} else {
return ["red", "try again"];
}
} else {
return ["yellow", "play the game"];
}
}
const [color, message] = checkNum(33);
console.log(`${color} - ${message}`);
如果愿意,还可以返回一个对象
function checkNum(x) {
if (x > 0) {
if (x > 59) {
return { color: "green" , message: "pass" };
} else {
return { color: "red" , message: "try again" };
}
} else {
return { color: "yellow", message: "play the game" };
}
}
const { color, message } = checkNum(33);
console.log(`${color} - ${message}`);