كيفية عكس رقم في JavaScript
أمثلة باستخدام دالة السهم ودالة JS العادية

يعد عكس السلسلة أو عكس الرقم أحد الأسئلة الشائعة التي يتم طرحها في مقابلات البرمجة. دعونا نلقي نظرة على كيفية القيام بذلك.
القواعد / القيود :
- يجب أن تظل الأرقام السالبة سلبية.
على سبيل المثال -12345
يصبح-54321
- يجب إزالة أي أصفار بادئة.
على سبيل المثال 321000
يصبح 123
& لا000123
- يمكن أن تقبل الوظيفة أعدادًا عائمة أو أعدادًا صحيحة.
على سبيل المثال 543.2100
يصبح12.345
- ستعيد الدالة الأعداد الصحيحة كأعداد صحيحة.
على سبيل المثال 54321
يصبح 12345
& لا12345.00
حل دالة السهم:
const reversedNum = num => parseFloat(num.toString().split('').reverse().join('')) * Math.sign(num)
حل وظيفة منتظمة:
function reversedNum(num) { return ( parseFloat( num .toString() .split('') .reverse() .join('') ) * Math.sign(num) ) }
الفرق بين دالة السهم والوظيفة العادية:
في هذا المثال ، الاختلاف الوحيد بين دالة السهم والدالة العادية هو أن الدالة العادية تحتاج إلى توفير return
قيمة صريحة .
وظائف الأسهم لها return
قيمة ضمنية - إذا كان من الممكن كتابتها في سطر واحد ، دون الحاجة إلى {}
الأقواس.
دعنا نقسم الخطوات:
- تحويل الرقم إلى سلسلة
num.toString()
يحول الرقم المحدد إلى سلسلة. نقوم بهذا حتى نتمكن من استخدام split
الدالة عليه بعد ذلك.
let num = -5432100 num.toString() // num = '-5432100'
- قسّم السلسلة إلى مصفوفة
num.split('')
يحول السلسلة إلى مصفوفة من الأحرف. نقوم بذلك حتى نتمكن من استخدام وظيفة عكس المصفوفة ( التي لا تعمل على سلسلة ).
// num = '-5432100' num.split('') // num = [ '-', '5', '4', '3', '2', '1', '0', '0' ]
- عكس المصفوفة
num.reverse()
يعكس ترتيب العناصر في المصفوفة.
// num = [ '-', '5', '4', '3', '2', '1', '0', '0' ] num.reverse() // num = [ '0', '0', '1', '2', '3', '4', '5', '-' ]
- اربطها مرة أخرى في سلسلة
num.join('')
يعيد تجميع الأحرف المعكوسة في سلسلة.
// num = [ '0', '0', '1', '2', '3', '4', '5', '-' ] num.join('') // num = '0012345-'
- تحليل قيمة الإدخال إلى رقم فاصلة عائمة:
parseFloat(num)
يتحول num
إلى عدد عشري من سلسلة.
// num = '0012345-' parseFloat(num) // num = 12345
ملاحظة :parseFloat
يعمل في النهاية (على الرغم من أنه موجود في السطر الأول من الوظيفة) على الرقم المعكوس ويزيل أي أصفار بادئة.
- اضربها بعلامة الرقم الأصلي - للحفاظ على القيمة السالبة.
num * Math.sign(num)
يضاعف الرقم بعلامة الرقم الأصلي المقدم.
// original value of num = -5432100 // num = 12345 num * Math.sign(-5432100) // num = -12345
وهناك لديك!