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" 
 }
asked Feb 9, 2013 at 14:08
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)

answered Feb 9, 2013 at 14:23
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
}
answered Feb 9, 2013 at 14:13

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

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

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.