Created
October 15, 2022 10:33
-
-
Save amr3k/d3998052c368e7696f2cae246c608e57 to your computer and use it in GitHub Desktop.
Revisions
-
amr3k created this gist
Oct 15, 2022 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,13 @@ export function stringifyNumber(num: number, gender: 'male' | 'female' = 'male') { const special = { male: ['', 'الأول', 'الثاني', 'الثالث', 'الرابع', 'الخامس', 'السادس', 'السابع', 'الثامن', 'التاسع', 'العاشر', 'الحادي عشر', 'الثاني عشر', 'الثالث عشر', 'الرابع عشر', 'الخامس عشر', 'السادس عشر', 'السابع عشر', 'الثامن عشر', 'التاسع عشر'], female: ['', 'الأولى', 'الثانية', 'الثالثة', 'الرابعة', 'الخامسة', 'السادسة', 'السابعة', 'الثامنة', 'التاسعة', 'العاشرة', 'الحادية عشر', 'الثانية عشر', 'الثالثة عشر', 'الرابعة عشر', 'الخامسة عشر', 'السادسة عشر', 'السابعة عشر', 'الثامنة عشر', 'التاسعة عشر'] }; const deca = ['عشرون', 'ثلاثون', 'أربعون', 'خمسون', 'ستون', 'سبعون', 'ثمانون', 'تسعون']; if (num < 20) return special[gender][num]; if (num % 10 === 0) return 'ال' + deca[Math.floor(num / 10) - 2]; return special[gender][num % 10] + ' و' + 'ال' + deca[Math.floor(num / 10) - 2]; } console.log(stringifyNumber(39)); // "التاسع والثلاثون" console.log(stringifyNumber(12, 'female')); // "الثانية عشر"