从工厂返回正确的价值

时间:2016-12-29 11:52:23

标签: javascript factory

尝试在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 '

我做得怎么样?

3 个答案:

答案 0 :(得分:3)

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作为后备。

答案 1 :(得分:1)

      function Factory(amount){
          switch (amount) {
            case 1:
              return "one "

            case 2:
              return "two "

            default:
              return "more than two "

        }
    }

像这样改变你的情况

答案 2 :(得分:0)

试试这个

function Factory(amount){
  switch (amount) {
    case 1:
      return "one "
      break;
    case 2:
      return "two "
      break;

  }
  return amount;
}



console.log(Factory(1))
//output "one"