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"
}
-
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.Dymond– Dymond2013年02月09日 14:13:14 +00:00Commented Feb 9, 2013 at 14:13
2 Answers 2
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)
1 Comment
total nor on the value variable, but on the this.value property.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
switch clause to use +this,value instead of just value. Or you change the case statements to use strings instead of numbers.