היי חברים!
בפוסט זה אסביר מעט על פונקציית MAP בשפת javascript
אז נניח ויש לנו מערך (רגיל לחלוטין) למשל
var myarr= [1,2,3,4,5]
ואנחנו מעוניינים לרוץ על המערך, ולבצע כל מיני פעולות על כל הערכים שיש בו.
באמצעות הפונקציה MAP ניתן לעשות זאת בקלות, נוכל לראות בדוגמא הבאה:
var myarr2 = myarr.map(x => x * 2)
המשתנה myarr2 הוא למעשה מכיל את המערך myarr אחרי ביצוע של הפונקציה map
x מייצג אלמנט בודד במערך בכל ריצה, ואנחנו רוצים להחזיר למערך החדש את הכפולה שלו – אנחנו מגדירים x * 2
בעצם במערך שנמצא ב myarr2 יהיה לנו את הערכים הבאים אחרי הפעולה של map
2,4,6,8,10 מכיון שאלה הערכים של מערך 1 אחרי שהכפלנו כל ערך ב 2.
עד כאן, הכל היה פשוט, מקווה שהבנו את הפוענטה של MAP
בוא נסבך קצת את העניינים.
אבל לפני – רקע קטן.
מה קורה במערך הבא?
var myarr = [ [3,4,5], [4,5,6], [76,344,63] ]
אולי לא כל הקוראים נתקלו במערך מהסוג הזה, אסביר:
מערך יכול להכיל מערכים.
כן, כל תא בכל מערך יכול להכיל מערך גם הוא.
למעשה אפילו אפשר ליצור מערך כזה:
var myarr = [ [3,4,5], [4,5,[66,65,] ], [76,344,63] ]
מאוד פשוט!
מערך יכול להכיל מערך שמכיל מערך.
כלומר במערך בדוגמא האחרונה במקום 1 יש לנו מערך שבמקום 2 שלו נמצא גם מערך.
אז בוא נחזור ל map ונתחיל לסבך קצת את העניינים .
נניח ואנחנו רוצים למיין מערך שמכיל מערכים ! כן, ראינו שזה אפשרי , ואנחנו רוצים להוציא מכל מערך שנמצא במערך הראשי – את המספר הכי גדול שיש בתוכו.
איך נעשה זאת? אנחנו נצטרך לכתוב פונקציה, שרצה על המערך הראשי, עושה עליו map , לוקחת כל אחד מהאלמנטים שיש במערך שגם הוא מערך בפני עצמו – ואז נעשה בדיקה איזה מספר הכי גדול בכל תת מערך.
איך נעשה את הבדיקה איזה מספר הכי גדול?
אנחנו נגדיר משתנה בשם big שבתור התחלה יהיה שווה 0 – ואז כל פעם אנחנו נשווה אותו לאותו מספר שיש במערך , ואם המספר שיש במערך הוא יותר גדול אז נעדכן את המשתנה שלנו
הקוד הסופי נראה ככה – מיד אחרי זה ההסבר:
var myArr = [
[3, 5, 5],
[5, 4, 3],
[65, 6, 4]
];
function checkArray(arr) {
var big = 0;
arr.forEach(function(element, i) {
var singleArr = element.map(
x => x)
for (let j = 0; j < singleArr.length; j++) {
if (singleArr[j] > big) {
big = singleArr[j];
};
}
console.log('the biggest is ' + big);
})
};
ראשית, נגדיר מערך שמכיל מערכים
כתיבת הפונקציה (קראנו לה checkArray והיא מקבלת מערך )
מקווה שנהנתם!