كيفية عكس رقم في 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

وهناك لديك!