מיון מערכים בשפת Javascript

מיון ערכים אלפאנומריים במערך בעזרת המתודה sort

המתודה sort מאפשרת למיין מערכים מיון אלפא נומרי. כלומר, מתודה זו בצורתה הגולמית תתייחס לכל ערך במערך כאל מחרוזת, גם אם מדובר למשל במספר.

דוגמה לשימוש במתודה sort לצורך מיון אלפאנומרי

var a=["World", "Israel", "Devschool", "Hello"]
a.sort() //The outcome is: ["Devschool", "Hello", "Israel", "World"]

בדוגמה למעלה ראינו כיצד המערך מתמיין וסדר המיון הוא מן האותיות הראשונות אל האחרונות.אם נרצה להפוך סדר זה כך שהמיון יהיה מן האותיות האחרונות אל הראשונות, נוכל לעשות זאת באמצעות שימוש במתודה reverse.

דוגמה לשימוש במתודה reverse כדי להפוך את סדר המיון של מערך

var a=["World", "Israel", "Devschool", "Hello"]
a.sort() //The outcome is: ["Devschool", "Hello", "Israel", "World"]
a.reverse //The outcome now is: ["World", "Israel", "Hello", "Devschool"]

מיון ערכים מספריים בעזרת המתודה sort

המתודה sort מאפשרת להעביר לה פונקצית מיון כארגומנט. פונקציה זו מקבלת שני ארגומנטים ומחזירה ערך מספרי כתשובה. הארגומנטים שמועברים לפונקציה הם ערכים שימשו את הפונקציה לצורך החלטה איזה מן המספרים ימויין במקום הראשון ואיזה במקום השני. אם הערך המוחזר הוא שלילי אזי הארגומנט הראשון שהועבר לפונקצית המיון יהיה ראשון. אם הערך המוחזר מהפונקציה הוא חיובי אזי הארגומנט השני שהועבר לפונקציה ימוקם לפני הארגומנט השני. אם הערך המוחזר שווה ל - 0 אזי אין חשיבות לסדר המיון של שני הארגומנטים, כלומר הם שווים זה לזה מבחינת המיון המבוקש.

בדוגמה הבאה ננצל את התכונה המאפשרת לנו להעביר פונקצית מיון כארגומנט למתודה sort כדי למיין מערך בעל ערכים מספריים.

מיון ערכים מספריים במערך בעזרת המתודה sort

var a=[23, 9, 6, 41];
a.sort(function(a,b){return a - b});
//The array now is [6, 9, 23, 41]

בדוגמה למעלה החסרנו את הארגומנט הראשון מן השני. אם הארגומנט הראשון גדול יותר מן השני אזי יוחזר ערך חיובי ולכן הארגומנט השני ימוקם לפני הארגומנט הראשון. אם הארגומנט הראשון קטן מן הארגומנט השני אזי הערך שיוחזר מחיסור שני הארגומנטים הוא שלילי ולכן המספר הראשון ימוקם לפני המספר השני. אם הערך שיוחזר הוא אפס משמעות הדבר ששני הארגומנטים שווים זה לזה ולכן אין חשיבות לסדר המיון.

כמובן שהפונקציה שכתבנו בדוגמה האחרונה תמיין את המספרים המועברים אליה בסדר עולה, כלומר מן הקטן אל הגדול. אם נרצה להפוך את סדר המיון נוכל להשתמש במתודה reverse כפי שהדגמנו בסעיף הקודם אולם נוכל לעשות זאת גם בעזרת שינוי הפונקציה הממיינת באופן הבא.

מיון ערכים מספריים במערך בסדר יורד

var a=[23, 9, 6, 41];
a.sort(function(a,b){return b - a});
//The array now is [41, 23, 9, 6]

בדוגמה למעלה הפכנו את סדר החיסור בין שני המספרים כך שאנו מחסרים את המספר הראשון מהשני. שינוי זה יגרום לכך שסדר המיון של הפונקציה יתהפך יחסית לסדר המיון של הפונקציה בדוגמה הקודמת.

כלים ומדריכים נוספים הקשורים לנושא זה

המדריך לטיפוסי נתונים (Data Types) ב - Javascript

מדריך Javascript למערכים ויצירת מערכים

כתיבת וקריאת נתונים ממערכים ב - Javascript


 
© 2010-2013  www.Devschool.co.il | מדיניות פרטיות | תנאי שימוש