تحويل الأرقام الطويلة إلى شكل قصير ومضغوط في جافاسكريبت

hocine
Hocine G
Back-end Developer (Python/Django)
23/09/2022 |برمجة 💻
تحويل الأرقام الطويلة إلى شكل قصير ومضغوط في جافاسكريبت

سنقوم بتحويل الأرقام الطويلة التي قد تكون صعبة في القراءة الى شكل اقصر و ابسط بلغة البرمجة جافاسكريبت

كائن Intl هو namespace لـ ECMAScript Internationalization API ، والتي توفر مقارنة سلسلة حساسة للغة وتنسيق الأرقام وتنسيق التاريخ والوقت.

يوفر لنا الكائن Intl في جافاسكريبت الى الوصول للعديد من المنشئات (constructors ) بالإضافة إلى الوظائف المشتركة لمنشئي التدويل (internationalization) والوظائف الأخرى الحساسة للغة.

 

يوفر كائن Intl الوصول إلى العديد من المنشئات بالإضافة إلى الوظائف المشتركة لمنشئي التدويل والوظائف الأخرى الحساسة للغة.

Intl.NumberFormat() هو مُنشئ للكائنات التي تمكّن تنسيق الأرقام الحساسة للغة.

تحويل رقم طويل إلى شكل قصير

على سبيل المثال، يتيح لنا تنسيق رقم طويل لنظيره المضغوط من خلال توفير خيار:

notation: "compact"

 

new Intl.NumberFormat('en', { 
    notation: "compact"
}).format(987654321);

// → "988M"

 

باللغة العربية:

new Intl.NumberFormat('ar', { 
    notation: "compact"
}).format(987654321);

// → "٩٨٨ مليون" 

 

أو  للحصول على تنسيق أكثر تفصيلاً  يمكننا تمرير خيار:

CompactDisplay: "long"

 

new Intl.NumberFormat('en', { 
    notation: "compact",
    compactDisplay: "long"
}).format(78656); 

// → 79 thousand

 

باللغة العربية:

new Intl.NumberFormat('ar', { 
    notation: "compact",
    compactDisplay: "long"
}).format(78656); 

// → "٧٩ ألف"

 

يمكنك اختيار عدم توفير اللغة إذا لم تكن متأكدًا من ذلك. يمكنك تحديد undefined بدلاً من لغة وستظل تعمل.

new Intl.NumberFormat(undefined, { 
    notation: "compact",
    compactDisplay: "long"
}).format(78656);

// → 79 thousand

 

التدوين العلمي والهندسي

بصرف النظر عن "compact" ، يمكنك أيضًا تمرير "engineering" و "scientific" إلى الترميز للحصول على التنسيق الخاص بالرقم على التوالي، على هذا النحو:

new Intl.NumberFormat(undefined, { 
    notation: "scientific"
}).format(78656666589);

// → 7.866E10

او:

new Intl.NumberFormat(undefined, { 
    notation: "engineering"
}).format(78656666589);

// → 78.657E9

 

ملاحضة: يمكننا كتابة الكود بطريقة اخرى بانشاء كائن كاَتي:

const formatter_ar =  Intl.NumberFormat('ar', { 
    notation: "compact"
});

formatter_ar.format(1234); // → "١٫٢ ألف"

 

نتمنى ان يكون هذا الموضوع مفيدا. اذا كان لديك استفسار لا تتردد في طرحة بالتعليقات.

 

تذكر أن المساهمات في هذا الموضوع يجب أن تتبع إرشادات المجتمع.


التعليقات:

    لا توجد تعليقات بعد.