检查很多不同案例的简单方法

时间:2015-01-11 14:41:20

标签: javascript

所以我一直想知道是否有可能使用math.random的语句更容易,而不使用switch(),如下所示:

var ex = Math.random()

if (ex > 0.1) {
    return 'so long';
} else if (ex > 0.2) {
    return 'so long'; // i understand that this is dead code because it does the same thing, its just for example
}

等等

它很快就会重复,我认为必须有一种更简单的方法来实现它

2 个答案:

答案 0 :(得分:2)

如果要从一组字符串中选择一个随机条目,可以这样做:

var options = ["So long", "Thanks for all the fish", "42", "Where is my towel?"];
var index = Math.floor(Math.random() * options.length);
return options[index];
P.S。:福特在某些时候没有暗示亚瑟可以被一个不断要求喝茶的机器人取代吗?不幸的是,我找不到原始报价......

答案 1 :(得分:0)

只需使用for循环:

var ex = Math.random();

var returnPhrases = [
    'so long',              // this will be returned if (ex > 0.1)
    'so long',              // this will be return if (ex > 0.2)
    'thx for all the fish', // this will be returned if (ex > 0.3)
    'so long',              // etc.
    '42',
    'thanks for all the fish',
    'so long',
    'thx for all the fish',
    'so long',
    '42'
]

for (var i=0;i<1;i+=0.1) {
    if (ex > i) {
        return returnPhrases[i*10];
    }
}

这适用于您的具体案例,以及许多类似的重复案例。