From 3033c16bd1b53c5e449c2f21d68e4e603a9b39de Mon Sep 17 00:00:00 2001 From: koronya Date: Thu, 1 Jan 2026 20:14:10 +0900 Subject: [PATCH] [JS][7kyu] Adding ordinal indicator suffixes to numbers --- .../koronya.js | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 codewars/6kyu/adding-ordinal-indicator-suffixes-to-numbers/koronya.js diff --git a/codewars/6kyu/adding-ordinal-indicator-suffixes-to-numbers/koronya.js b/codewars/6kyu/adding-ordinal-indicator-suffixes-to-numbers/koronya.js new file mode 100644 index 000000000..dbec32f9b --- /dev/null +++ b/codewars/6kyu/adding-ordinal-indicator-suffixes-to-numbers/koronya.js @@ -0,0 +1,23 @@ +// [JS][7kyu] Adding ordinal indicator suffixes to numbers +// adding-ordinal-indicator-suffixes-to-numbers +// https://www.codewars.com/kata/52dca71390c32d8fb900002b/train/javascript + +const numberToOrdinal = (n) => { + if (n === 0) { + return '0' + } + const suffixes = ['th', 'st', 'nd', 'rd'] + const v = n % 100 + return n + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]) +} + +numberToOrdinal(0) === '0' +numberToOrdinal(1) === '1st' +numberToOrdinal(2) === '2nd' +numberToOrdinal(3) === '3rd' +numberToOrdinal(4) === '4th' +numberToOrdinal(11) === '11th' +numberToOrdinal(12) === '12th' +numberToOrdinal(13) === '13th' +numberToOrdinal(14) === '14th' +numberToOrdinal(21) === '21st'