-2

Problem: Given an integer in the range 10-40, which determines the number of training assignments on a certain topic. Output a string-description of the specified number of tasks, ensuring the correct agreement of the number with the words "study assignment", for example: 18 - "eighteen study assignments", 23 - "twenty-three study assignments", 31 - "thirty one study assignments".

i wrote something like,

var ten,
set,
unit;
switch(ten){
    case 11: 
        return "eleven";
        break;
    case 12:
        return "twelve";
        break;
    case 13:
        return "thirteen";
        break;
    case 14:
        return "fourteen";
        break;
    case 15:
        return "fifteen";
        break;
    case 16:
        return "sixteen";
        break;
    case 17:
        return "seventeen";
        break;
    case 18:
        return "eighteen";
        break;
    case 19:
        return "nineteen";
        break;
}
if (ten<9) {
    return "Error number is less than 9";
}
switch(set){
    case 10: 
        return "ten";
        break;
    case 20: 
        return "twenty";
        break;
    case 30: 
        return "thirty";
        break;
    case 40: 
        return "fourty";
        break; 
}
if(set<9) {
    return "Error number is less than 9";
}
switch (unit)
{
case 1: 
    return "on1";
    break;
case 2: 
    return "two";
    break;
case 3: 
    return "three";
    break;
case 4: 
    return "four";
    break;
case 5: 
    return "five";
    break;
case 6: 
    return "six";
    break;
case 7: 
    return "seven";
    break;
case 8: 
    return "eight";
    break;
case 9: 
    return "nine";
    break;
}

Any help will be appreciated!

Islam Nurdin
  • 15
  • 1
  • 5

1 Answers1

0

If you have a limited range of numbers and want an easy solution without any libraries, you could try simple mapping:

var numbers = {
  '10': 'ten',
  '11': 'eleven',
  '12': 'twelve',
  '13': 'thirteen'
  // ...
};
console.log(numbers['11']);   // 'eleven'

Otherwise the the already mentioned JavaScript numbers to Words seems a good solution.

Reynicke
  • 1,407
  • 1
  • 11
  • 21
  • There is a range between 10 and 40. When I write 29, it should return me: "twenty nine study assignments". It seems like long code, is there any other solutions – Islam Nurdin Jun 13 '17 at 07:55