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的数量。