w3resource

JavaScript: Get humanized number with the correct suffix

JavaScript String: Exercise-45 with Solution

Write a JavaScript function to get humanized number with the correct suffix such as 1st, 2nd, 3rd or 4th.

Test Data:
console.log(humanize(1));
console.log(humanize(20));
console.log(humanize(302));
"1st"
"20th"
"302nd"

Sample Solution:-

HTML Code:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript function to get humanized number with the correct suffix</title>
</head>
<body>

</body>
</html>

JavaScript Code:

function humanize(number) {
        if(number % 100 >= 11 && number % 100 <= 13)
            return number + "th";
        
        switch(number % 10) {
            case 1: return number + "st";
            case 2: return number + "nd";
            case 3: return number + "rd";
        }
        
        return number + "th";
    }
console.log(humanize(1));
console.log(humanize(20));
console.log(humanize(302));

Sample Output:

1st
20th
302nd

Flowchart:

Flowchart: JavaScript: Get humanized number with the correct suffix

Live Demo:

See the Pen JavaScript Get humanized number with the correct suffix-string-ex-45 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Previous: Write a JavaScript function to test whether the character at the provided character index is lower case.
Next: Write a JavaScript function to test whether a string starts with a specified string.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



JavaScript: Tips of the Day

var functionName = function() {} vs function functionName() {}

The difference is that functionOne is a function expression and so only defined when that line is reached, whereas functionTwo is a function declaration and is defined as soon as its surrounding function or script is executed (due to hoisting).

For example, a function expression:

// TypeError: functionOne is not a function
functionOne();

var functionOne = function() {
  console.log("Hello!");
};

Historically, function declarations defined within blocks were handled inconsistently between browsers. Strict mode (introduced in ES5) resolved this by scoping function declarations to their enclosing block.

'use strict';    
{ // note this block!
  function functionThree() {
    console.log("Hello!");
  }
}
functionThree(); // ReferenceError

Ref: https://bit.ly/2zMAj1O