طريقة Sort
جزء من قسم المنطق وتدفق التنفيذ في رحلة JavaScript على Coddy. الدرس 57 من 65.
تتيح لك الطريقة sort() فرز عناصر المصفوفة في مواضعها، وتُرجع المصفوفة بعد فرزها. افتراضيًا، تفرز العناصر كسلاسل نصية بترتيب أبجدي تصاعدي.
إليك الصياغة الأساسية:
array.sort([compareFunction])مثال من دون استخدام دالة المقارنة:
const fruits = ['banana', 'apple', 'orange', 'mango'];
fruits.sort();
console.log(fruits);
// ['apple', 'banana', 'mango', 'orange']تحذير: لا تُرتَّب الأعداد كما هو متوقع من دون دالة مقارنة:
const numbers = [1, 30, 4, 21, 100000];
numbers.sort();
console.log(numbers);
// [1, 100000, 21, 30, 4] (ترتيب عددي غير صحيح)لفرز الأعداد بشكل صحيح أو تطبيق فرز مخصص، تحتاج إلى استخدام دالة مقارنة.
يجب أن تُرجع دالة المقارنة:
- قيمة سالبة إذا كان ينبغي أن يأتي a قبل b
- قيمة موجبة إذا كان ينبغي أن يأتي b قبل a
- صفرًا إذا كانا متساويين
إليك كيفية ترتيب الأرقام باستخدام دالة مقارنة:
// ترتيب تصاعدي
const numbers = [1, 30, 4, 21, 100000];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 4, 21, 30, 100000]// ترتيب تنازلي
numbers.sort((a, b) => b - a);
console.log(numbers); // [100000, 30, 21, 4, 1]مثال آخر على كيفية ترتيب الكائنات:
const people = [
{ name: 'John', age: 30 },
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 35 }
];
// رتّب حسب العمر (تصاعديًا)
people.sort((a, b) => a.age - b.age);// رتّب حسب الاسم (أبجديًا باستخدام localeCompare())
people.sort((a, b) => a.name.localeCompare(b.name));التحدي
سهلأنشئ دالة باسم sortByLength تأخذ مصفوفة من السلاسل النصية وتُعيد مصفوفة جديدة تحتوي على السلاسل نفسها مرتبة حسب طولها ترتيبًا تصاعديًا. إذا كان طول سلسلتين متساويًا، فرتّبهما أبجديًا.
جرّب بنفسك
function sortByLength(arr) {
return arr.sort((a, b) => {
// اكتب الكود هنا
})
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1السلاسل النصية بالتفصيل
أساسيات السلاسل النصيةالتكرار على السلاسل النصيةالقوالب النصيةدوال السلاسل النصيةمراجعة - ناسج السلاسل النصية2المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة: المصفوفات ثنائية الأبعادجمع المصفوفات وطرحهاالمصفوفات متعرجة الأبعادالمصفوفات ثلاثية الأبعاد وما بعدهاأنماط شائعة للمصفوفات ثنائية الأبعادمراجعة: كل ما يتعلق بالمصفوفات5المجموعات - الجزء الأول
ما هي المجموعة؟التكرار على عناصر المجموعةإضافة عنصرإزالة عنصرالتحقق من وجود عنصرالحجم والتحقق من الفراغالنسخ والمسحمراجعة - أساسيات المجموعات8موضوعات شيقة حول المصفوفات
تفكيك المصفوفاتصياغة الانتشار في المصفوفاتالمصفوفات المتناثرةمراجعة - ورشة عمل حول المصفوفات3JSON الجزء 1
ما هو JSON؟التحقق من وجود المفتاحطرق الكائنعامل الانتشار الجزء 1عامل الانتشار الجزء 2حذف المفاتيحمراجعة - معالجة المفاتيح في JSONتدرّب بنفسك: مترجم JavaScript عبر الإنترنت