Добавление порядковых суффиксов к числам в JS: исключения и циклы
Быстрый ответ
Если вам требуется функция, призванная динамически приписывать английские порядковые суффиксы (st
, nd
, rd
, th
) к числам, то ваш поиск завершён:
function addOrdinal(n) {
var s = ["th", "st", "nd", "rd"],
v = n % 100;
return n + (s[(v – 20) % 10] || s[v] || s[0]);
}
console.log(addOrdinal(1));
console.log(addOrdinal(2));
console.log(addOrdinal(3));
console.log(addOrdinal(11));
console.log(addOrdinal(22));
console.log(addOrdinal(123));
Приведенная выше функция соотносит последние цифры числа с соответствующими суффиксами, принимая во внимание возникающие исключения. Используйте addOrdinal
, чтобы корректно порядково обозначать числа.
Продвинутое использование и особые случаи
Давайте углубимся в функцию addOrdinal
и узнаем больше о её возможностях!
Учёт отрицательных чисел
Отрицательные числа вполне могут быть преобразованы в порядковые:
function addOrdinal(n) {
let absValue = Math.abs(n);
...
return (n < 0 ? "-" : "") + absValue + (s[(absValue – 20) % 10] || s[absValue] || s[0]);
}
Современный синтаксис
const addOrdinal = n => {
const s = ["th", "st", "nd", "rd"];
const v = n % 100;
return `${n}${s[(v-20)%10] || s[v] || s[0]}`;
};
Интеграция с moment.js
moment.localeData().ordinal(n);
moment.js
позволит вашему коду взаимодействовать на любом языке.
Визуализация
Наглядно представляем "бал чисел", где каждый участник (число) получает индивидуальный значок:
Знакомство с участниками:
1 👤 – "1-й" 🏅
2 👤 – "2-й" 🎖️
3 👤 – "3-й" 🥉
4 👤 – "4-й" 🏷️
... и так далее.
Логика значков:
- Заканчивается на "1": 🏅 (за исключением "11")
- Заканчивается на "2": 🎖️ (за исключением "12")
- Заканчивается на "3": 🥉 (за исключением "13")
- Все прочие: 🏷️
Наглядная визуализация помогает лучше освоить логику функции.
Глубокое изучение особых случаев
Особые случаи подчеркивают изящество поправки:
Локализация суффиксов
Функцию можно расширить для поддержки различных языков, так как кодирование универсально.
Производительность
Необходимо обеспечивать высокую скорость выполнения кода с точки зрения использования памяти и времени обработки CPU.
Тестирование с большими числами
Важность использования очень больших чисел заключается в том, что это может стать хорошей проверкой на прочность функции.
Полезные материалы
- Справочник JavaScript – JavaScript | MDN — это подробный источник информации о синтаксисе и использовании JavaScript.
- Как добавить порядковые суффиксы к числам – Stack Overflow — это утвержденные сообществом решения для работы с порядковыми суффиксами.
- ECMA-262 – Ecma International — официальная спецификация ECMAScript, подробно описывающая взаимодействие с числами и строками.
- Порядковые числа в JavaScript · GitHub — здесь можно найти полезную функцию на JavaScript для добавления суффиксов.
- Методы обработки строк JavaScript — руководство, посвященное методам работы со строками.