Javascript 如何减少if的数量

Javascript 如何减少if的数量,javascript,Javascript,有没有办法减少代码中“如果”的数量 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

有没有办法减少代码中“如果”的数量

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));
}
功能测试(输入){
如果((输入%3==0)和&(输入%5==0)){
返回'fizzbuzz';
}else if(输入%3==0){
返回“嘶嘶声”;
}else if(输入%5==0){
返回“嗡嗡声”;
}否则{
返回“”+输入;
}
}
对于(变量i=1;i<100;i++){
控制台日志(测试(i));
}

如果不想使用If,为什么不试试case语法

或者使用JS速记表示if

以便:

var something;

if (2 + 2 === 4){
 something = "Yup!"
} else {
 something = "Nope"
}
变成

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

如果不想使用If,为什么不试试case语法

或者使用JS速记表示if

以便:

var something;

if (2 + 2 === 4){
 something = "Yup!"
} else {
 something = "Nope"
}
变成

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

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

var mod3 = input % 3 == 0;
var mod5 = input % 5 == 0;
。。。正在创建查找表

var outs = [input, "fizz", "buzz", "fizzbuzz"];
。。。并且索引它

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

。。。如果s,则无
s

您可以通过存储比较值来避免:

var mod3 = input % 3 == 0;
var mod5 = input % 5 == 0;
。。。正在创建查找表

var outs = [input, "fizz", "buzz", "fizzbuzz"];
。。。并且索引它

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

。。。如果
s,则无
s

您可以使用三元运算符:

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

您可以使用三元运算符:

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

你可以完全去掉第一个“如果”,因为第三个和第五个以及“嘶嘶声”和“嗡嗡声”在后面的词中使用。您也可以等待返回,直到结束。比如:

var str = "";

if (input % 3 === 0){
  str +="fizz";
}

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

return str;

你可以完全去掉第一个“如果”,因为第三个和第五个以及“嘶嘶声”和“嗡嗡声”在后面的词中使用。您也可以等待返回,直到结束。比如:

var str = "";

if (input % 3 === 0){
  str +="fizz";
}

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

return str;

这个问题属于这个问题属于创造性的观点,但当添加更多的条件时,很容易被破坏。@ergonaut FizzBuzz是一个非常古老的挑战。我怀疑它是否真的会“改变”。我从未听说过这一点,显然它从未被提升到Hello World的地位。为了让它不那么晦涩,一些命名常量会做得很好:var MULTIPLE_of_3=1,MULTIPLE_of_5=2;这必须是答案。创意得分,但随着更多条件的增加,很容易被破坏。@ergonaut FizzBuzz是一个非常古老的挑战。我怀疑它是否真的会“改变”。我从未听说过这一点,显然它从未被提升到Hello World的地位。为了让它不那么晦涩,一些命名常量会做得很好:var MULTIPLE_of_3=1,MULTIPLE_of_5=2;这一定是答案。你永远不会一个人喝“汽水”。总是“嗡嗡声”、“嘶嘶声”或
输入
。你永远不会单独听到“嘶嘶声”。它始终是“嗡嗡声”、“嘶嘶声”或
输入
@BartekBanachewicz:从技术上讲,它根本不是
if
,尽管它是一个表达式,可以替换
if/else
语句。他没有说他想减少条件的数量,只是减少
if
s的数量。@BartekBanachewicz:从技术上讲,它根本不是
if
,尽管它是一个可以替代
if/else
语句的表达式。他没有说他想减少条件的数量,只是减少
if
s的数量。