0

I have created a dice function that trows random dices and sum the value of them.

Now every number from 0-9 is connected to a class, so if i get number 4 it should call class " four" So i created a switch from 0-9 . But when i get a sum more than 9 its give me the default number, since the function dosent know that 11 is actually 2 numbers. I was wonder I its possible to split the numbers and put them into an array so when i pass it to the switch it gets med "one" "one" .

Any ideas ?

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" 
    }
1
  • well, its more like. When i get the sum 11, I would like to call the switch by class "one" + "one" otherwise i would need a endless combinations of numbers to call every sum. Commented Feb 9, 2013 at 14:13

2 Answers 2

1

You could use the string split function for that:

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

(Of course you can use a loop instead of map; Check this answer and its comments on how the array thing works)

Sign up to request clarification or add additional context in comments.

1 Comment

@Dymond: Ah, wait, you're neither switching on the total nor on the value variable, but on the this.value property.
0

You can use split() after you transformed your number to a string. Then run through the resulting array and assign your classes.

var total = 11;

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

for( var i=0; i<pieces.length; i++) {
  // your switch in here
}

2 Comments

It almost work :) when i do a console.log the log from pieces is ["3"] ["4"] I need to remove the "" dots. is it possible to just print the numbers separly without the dots and squere bracket
@Dymond Easiest way would be to change the condition in your switch clause to use +this,value instead of just value. Or you change the case statements to use strings instead of numbers.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.