تصنيف مصفوفة جافا سكريبت - كيفية استخدام طرق فرز JS (مع أمثلة التعليمات البرمجية)

في JavaScript ، يمكننا فرز عناصر المصفوفة بسهولة باستخدام طريقة مضمنة تسمى دالة الفرز ().

ومع ذلك ، يمكن أن تختلف أنواع البيانات (سلسلة ورقم وما إلى ذلك) من مصفوفة إلى أخرى. هذا يعني أن استخدام طريقة الفرز () وحدها ليس دائمًا حلاً مناسبًا.

في هذا المنشور ، ستتعلم كيفية فرز مصفوفة في JavaScript باستخدام طريقة sort () للسلاسل والأرقام.

مصفوفة من السلاسل

لنبدأ بالسلاسل:

const teams = ['Real Madrid', 'Manchester Utd', 'Bayern Munich', 'Juventus'];

عندما نستخدم طريقة الفرز () ، سيتم فرز العناصر بترتيب تصاعدي (من الألف إلى الياء) افتراضيًا:

teams.sort(); // ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']

إذا كنت تفضل فرز المصفوفة بترتيب تنازلي ، فأنت بحاجة إلى استخدام طريقة reverse () بدلاً من ذلك:

teams.reverse(); // ['Real Madrid', 'Manchester Utd', 'Juventus', 'Bayern Munich']

مصفوفة الأعداد

فرز الأرقام ليس بهذه البساطة للأسف. إذا طبقنا طريقة الفرز مباشرة على مصفوفة أرقام ، فسنرى نتيجة غير متوقعة:

const numbers = [3, 23, 12]; numbers.sort(); // --> 12, 23, 3

لماذا لا تعمل طريقة الفرز () مع الأرقام

إنه يعمل بالفعل ، لكن هذه المشكلة تحدث لأن JavaScript يفرز الأرقام أبجديًا. اسمحوا لي أن أشرح هذا بالتفصيل.

لنفكر في أ = 1 ، ب = 2 ، ج = 3.

const myArray = ['C', 'BC', 'AB']; myArray.sort(); // [AB, BC, C]

على سبيل المثال ، إذا كان لدينا ثلاث سلاسل مثل C (3) و BC (23) و AB (12) ، فستقوم JavaScript بفرزها على أنها AB و BC و C بترتيب تصاعدي ، وهو صحيح أبجديًا.

ومع ذلك ، ستقوم JavaScript بفرز الأرقام (أبجديًا مرة أخرى) على أنها 12 و 23 و 3 ، وهذا غير صحيح.

الحل: وظيفة المقارنة

لحسن الحظ ، يمكننا دعم طريقة الفرز () بوظيفة مقارنة أساسية ستؤدي الحيلة:

function(a, b) {return a - b}

لحسن الحظ ، يمكن لطريقة الفرز فرز القيم السلبية والصفر والموجبة بالترتيب الصحيح. عندما تقارن طريقة الفرز () بين قيمتين ، فإنها ترسل القيم إلى دالة المقارنة الخاصة بنا وترتب القيم وفقًا للقيمة التي يتم إرجاعها.

  • إذا كانت النتيجة سالبة ، يتم فرز a قبل b.
  • إذا كانت النتيجة موجبة ، يتم فرز b قبل a.
  • إذا كانت النتيجة 0 ، فلن يتغير شيء.

كل ما نحتاج إليه هو استخدام وظيفة المقارنة داخل طريقة الفرز ():

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return a - b}); // --> 3, 12, 23

إذا أردنا فرز الأرقام بترتيب تنازلي ، نحتاج هذه المرة إلى طرح المعلمة الثانية (ب) من المعامل الأول (أ):

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return b - a}); // --> 23, 12, 3

يتم إحتوائه

كما نرى ، يمكن فرز عناصر المصفوفة بسهولة في JavaScript باستخدام طريقة sort () ، إذا عرفنا كيفية استخدامها بشكل صحيح. آمل أن تساعدك منشوري على فهم كيفية استخدام طريقة الفرز () في JavaScript بالطريقة الصحيحة.

إذا كنت تريد معرفة المزيد عن تطوير الويب ، فلا تتردد في زيارة قناة Youtube الخاصة بي.

شكرا لقرائتك!