0

我创建了一个骰子函数,该函数可以随机生成骰子并将它们的值相加。

现在从 0-9 的每个数字都连接到一个类,所以如果我得到数字 4 它应该调用类“四”所以我创建了一个从 0-9 的开关。但是当我得到一个超过 9 的总和时,它会给我默认数字,因为函数 dosent 知道 11 实际上是 2 个数字。我想知道我是否可以拆分数字并将它们放入一个数组中,所以当我将它传递给交换机时,它会得到 med "one" "one" 。

有任何想法吗 ?

var value = total;
    switch(this.value){
        case 1:
            value ="one";
            break
        case 2:
            value ="two";
            break
        case 3:
            value ="three";
            break
        case 4:
            value ="four";
            break
        case 5:
            value ="five";
            break
        case 6:
            value ="six";
            break
        case 7:
            value ="seven";
            break
        case 8:
            value ="eight";
            break
        case 9:
            value ="nine";
            break
        case 0:
            value ="zero";
            break
        default:
            value ="zero" 
    }
4

2 回答 2

1

您可以为此使用字符串split函数

var result = this.value.toString(10).split("").map(function(digit) {
    return ["zero", "one", "two", "three", "four", "five",
            "six", "seven", "eight", "nine"][digit];
});

(当然,您可以使用循环代替map; 检查这个答案及其对数组如何工作的评论)

于 2013-02-09T14:23:07.433 回答
0

您可以split()在将号码转换为字符串后使用。然后遍历生成的数组并分配您的类。

var total = 11;

var pieces = ("" + total).split( "" );

for( var i=0; i<pieces.length; i++) {
  // your switch in here
}
于 2013-02-09T14:13:10.730 回答