【问题标题】:Returning correct value from factory从工厂返回正确的值
【发布时间】:2016-12-29 11:52:23
【问题描述】:

尝试在 JavaScript 中创建工厂,当我将值传递给工厂时,我希望它返回正确的字符串而不是整数。

function Factory(amount){
  switch (amount) {
    case amount == 1:
      return "one "
      break;
    case amount == 2:
      return "two "
      break;
    case amount > 2:
      return "more than two "
      break;
  }
  return amount;
}

var per1 = Factory(1);
console.log(per1, 'per1');
var per2 = Factory(2);
var per3 = Factory(3);

但是当我注销per1 时,我得到的值是:1 而不是'one '

我做错了什么?

【问题讨论】:

标签: javascript factory


【解决方案1】:

Switch case 作用于值,而不是 true/false

function Factory(amount){
  switch (amount) {
    case 0:
      return "zero "
    case 1:
      return "one "
    case 2:
      return "two "
    default:
      return "more than two "
  }
}

您也不需要break,因为您已经拥有return

如果上面没有提到,default 案例处理其余案例。所以你也不需要return amount作为后备。

【讨论】:

    【解决方案2】:
          function Factory(amount){
              switch (amount) {
                case 1:
                  return "one "
    
                case 2:
                  return "two "
    
                default:
                  return "more than two "
    
            }
        }
    

    像这样改变你的情况

    【讨论】:

      【解决方案3】:

      试试这个

      function Factory(amount){
        switch (amount) {
          case 1:
            return "one "
            break;
          case 2:
            return "two "
            break;
      
        }
        return amount;
      }
      
      
      
      console.log(Factory(1))
      //output "one"
      

      【讨论】:

      • 我相信你回来后不需要打破
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-15
      • 2019-06-15
      • 2016-01-25
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多