如何减少如果的数量

How to reduce the number of if

本文关键字:如果 何减少      更新时间:2023-09-26

是否有办法减少代码中"if"的数量?

function test(input) {
  if ((input % 3 == 0) && (input % 5 == 0)) {
    return 'fizzbuzz';
  } else if (input % 3 == 0) {
    return 'fizz';
  } else if (input % 5 == 0) {
    return 'buzz';
  } else {
    return '' + input;
  }
}

for (var i = 1; i < 100; i++) {
  console.log(test(i));
}

您可以通过存储比较值来避免这种情况:

var mod3 = input % 3 == 0;
var mod5 = input % 5 == 0;

…创建查找表…

var outs = [input, "fizz", "buzz", "fizzbuzz"];

…索引它…

return outs[(+mod3) + 2 * (+mod5)];

…没有if s!

可以使用三元操作符:

return ((input%3==0)&&(input%5==0)) ? 'fizz buzz'
       : (input%3==0) ? 'fizz'
       : (input%5==0) ? 'buzz'
       : '' + input;

如果你不想使用If 's为什么不尝试大小写语法?

http://www.w3schools.com/js/js_switch.asp

也可以使用JS的if

简写

so:

var something;
if (2 + 2 === 4){
 something = "Yup!"
} else {
 something = "Nope"
}

var something = 2 + 2 === 4 ? "Yup!" : "Nope";

可以完全去掉第一个"if",因为3和5以及"fizz"answers"buzz"在后面的选项中使用。你也可以等到最后再回来。比如:

var str = "";
if (input % 3 === 0){
  str +="fizz";
}
if (input % 5 === 0 ){
  str +="buzz";
} else {
str = input;
}
return str;