لفهم كيفية فرز الخريطة Map في جافا سكريبت حسب القيم، يمكنك استخدام وظيفة مخصصة لتحقيق ذلك. تحتاج إلى تحويل الخريطة إلى مصفوفة من الأزواج الرئيسية-القيم ثم استخدام دالة الفرز التقليدية وأخيرًا تحويل المصفوفة المرتبة إلى خريطة جديدة.
هنا كيفية القيام بذلك:
javascriptvar map = new Map();
map.set("orange", 10);
map.set("apple", 5);
map.set("banana", 20);
map.set("cherry", 13);
// تحويل الخريطة إلى مصفوفة من الأزواج الرئيسية-القيم
var mapArray = Array.from(map);
// فرز المصفوفة حسب قيم العناصر
mapArray.sort(function (a, b) {
return a[1] - b[1];
});
// إنشاء خريطة جديدة مع العناصر المفرزة
var sortedMap = new Map(mapArray);
// طباعة الخريطة المفرزة
for (let [key, value] of sortedMap) {
console.log(key + ' = ' + value);
}
سيعرض الكود الناتج الخريطة المفرزة حسب القيم:
makefileapple = 5 orange = 10 cherry = 13 banana = 20
يرجى ملاحظة أن هذه الطريقة لن تقوم بتغيير ترتيب العناصر في الخريطة الأصلية map
، بل ستنشئ خريطة جديدة sortedMap
مفرزة حسب القيم.
المزيد من المعلومات
بالتأكيد، هنا بعض المعلومات الإضافية حول فرز الخرائط في جافا سكريبت:
-
استخدام دالة
Array.from()
لتحويل الخريطة إلى مصفوفة من الأزواج الرئيسية-القيم. يمكنك أيضًا استخدامObject.fromEntries()
إذا كنت تستخدم ECMAScript 2019+. -
استخدام دالة
sort()
لفرز المصفوفة حسب قيم العناصر. يمكنك توفير وظيفة فرز مخصصة لتعيين كيفية الفرز (تصاعديًا أو تنازليًا). -
إنشاء خريطة جديدة باستخدام المصفوفة المفرزة. يمكنك استخدام
Map
constructor لتحويل المصفوفة المفرزة إلى خريطة جديدة. -
يمكنك استخدام حلقة
for...of
للمرور عبر الخريطة المفرزة وطباعة العناصر المفرزة.
هذه الطريقة تعمل بشكل جيد لفرز الخرائط حسب القيم، ولكن تذكر أنها لا تغير ترتيب العناصر في الخريطة الأصلية.