تصنيف مصفوفة جافا سكريبت - كيفية استخدام طرق فرز 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 الخاصة بي.
شكرا لقرائتك!