0

ランダムなサイコロを投げてそれらの値を合計するサイコロ関数を作成しました。

これで、0 ~ 9 のすべての番号がクラスに接続されているため、番号 4 を取得した場合は、クラスを「4」と呼ぶ必要があるため、 0-9 からスイッチを作成しました。しかし、合計が 9 を超えると、デフォルトの数値が返されます。これは、関数が 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 に答える