מערכים בשפת Javascript - קריאה וכתיבה

גישה לאיברים בתוך מערך

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

דוגמאות קוד לקריאת ערכים ממערך

בדוגמה הבא ניצור מערך ובו שלושה איברים: 1, true ו - "Hello". לאחר מכן נראה כיצד נוכל לקרוא מה הערכים שבכל אחד משלושת האיברים שבמערך:

var a = [1, true, "Hello"] // יצירת המערך והצבת הערכים בתוך המערך
var val1 = a(0); // val1 = 1
var val2 = a(1); // val2 = true
var val3 = a(2); // val3 = "Hello"

דוגמאות קוד לכתיבת ערכים בתוך מערך

var a = new array(3) // יצירת מערך ובו שלושה איברים ריקים
a(0) = 1; // נכתוב את הערך 1 לאיבר הראשון במערך
var b = true; // נגדיר משתנה בוליאני ונציב בתוכו ערך אמת
a(1) = b; // נציב את ערכו של משתנה בתוך האיבר השני במערך
var i = 1; // נגדיר משתנה ובו הערך 1
a(i + 1) = "Hello"; // נכתוב ערך באיבר השלישי במערך

הוספת איברים למערך

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

arr = [] // נגדיר מערך חדש ריק
arr[0] = 1; //נוסיף למערך איבר חדש a[0] = 1; //נוסיף למערך איבר חדש
arr[1] = true;// נוסיף עוד איבר
arr[2] = "Hello";// נוסיף עוד איבר

הוספת איבר חדש לסוף המערך

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

a = []; // נגדיר מערך חדש ריק
a.push(1) // נוסיף איבר חדש לסוף המערך
a = [1] // כך ייראה המערך שלנו לאחר הוספת האיבר
a.push(true, "Hello") // נוסיף עוד שני איברים
a = [1, true, "Hello"] // כל ייראה המערך שלנו לאחר הוספת שני האיברים הנוספים

דרך אחרת להוספת איבר חדש לסוף מערך היא פשוט למצוא מה אורך המערך ולהציב ערך באינדקס השווה לאורך המערך. כך ייווצר לנו איבר חדש שימוקם בסוף המערך. כדי  למצוא את אורך המערך נשתמש במתודה length:

a = [1, true]; // נגדיר מערך חדש ובו שני איברים
a(a.length) = "Hello" // ניצור איבר חדש בסוף המערך
a[1, true, "Hello"] // כך ייראה המערך שלנו לאחר הוספת האיבר לסופו

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

הוספת איברים לכל מקום בתוך מערך בעזרת המתודה splice

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

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

להלן דוגמאות קוד להוספת איברים לתוך מערכים באמצעות המתודה splice:

var a = [1,2,3,4,5]; // נגדיר מערך ובו חמישה איברים
a.splice(2,0,'x','y'); // Returns []; a is [1,2,'x','y',3,4,5]
a.splice(2,2,[1,2],3); // Returns ['x','y']; a is [1,2,[1,2],3,3,4,5]

 

מחיקת איברים ממערך

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

var a = [1, 2, 3]; // נגדיר מערך ובו שלושה איברים
delete a(1) // מחיקת האיבר שבאינדקס 1

 

מחיקת איברים מסוף מערך

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

var a = [1, 2, 3]; // נגדיר מערך בין 3 איברים
a.length=2; // נגדיר שאורך המערך הוא - 2 במקום 3
a = [1, 2] // כעת המערך הינו בין שני איברים והאיבר השלישי שהיה בו נמחק

מחיקת איברים מכל מקום במערך באמצעות המתודה splice

המתודה splice מאפשרת למחוק איברים מכל מקום בתוך מערך. מתודה זו מאפשרת גם להוסיף איזה איברים שנרצה (על כך בסעיף הקודם במדריך זה). המתודה splice מקבלת שני ארגומנטים: הארגומנט הראשון מציין את המקום המדויק במערך שבו תתבצע פעולת המחיקה / הוספה. הארגומנט השני מציין את מספר האיברים מנקודת ההתחלה שאותם ברצוננו למחוק. לאחר ביצוע פעולות בעזרת splice כל האיברים במערך מקבלים אינדקסים התואמים את מיקומם במערך. כך שבמקרה שנמחקו איברים יתעדכנו כל האינדקסים של האיברים שהיו ממוקמים לאחר האיברים שנמחקו.

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

להלן דוגמאות קוד למחיקת איברים בתוך מערכים באמצעות המתודה splice:

var a = [1,2,3,4,5,6,7]; // נגדיר מערך ובו שבעה איברים
a.splice(3); // Returns [4,5,6,7]; a is [1,2,3]
a.splice(1,2); // Returns [2,3]; a is [1]

 

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

המדריך ליצירת מערכים בשפת Javascript 

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


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