JS传递值并选择return var

时间:2019-01-30 20:47:22

标签: javascript

是否可以从返回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女巫,请重试...

如何得到这样的东西:对不起,“重试”,您是“红色”!

还是我必须复制每个函数并为每个返回状态更改名称?

请给个线索。

2 个答案:

答案 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 objectarray

像这样

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}`);