יצירת קשר עם חברת בניית אתרים צור קשר

 077-7644819
חייגו או השאירו הודעתכם

 
מאמרים אחרונים מאמרים אחרונים
04/04/2024 18:47
בניית של חנות באינטרנט למכירה של מוצרי גיימינג, מחשבים, סלולר וציוד נלווה
09/08/2023 17:16
בניית חנות באינטרנט למכירה של מוצרים לחיות מחמד
12/03/2023 22:03
במאמר זה נסקור את התפתחות שפת צד השרת PHP מראשית ימיה, לכל אורך גירסאותיה השונות עד לאן שהיא הגיעה ב...

מערכים ומבני נתונים מחסנית ותור

  1. דף הבית
  2. מדריך HTML5 למתכנת המתחיל
  3. מערכים ומבני נתונים מחסנית ותור
יצירת מבני נתונים שונים בג'אווה סקריפט: מערך, מחסנית ותור.

הגדרת מערכים בג'אווה סקריפט

מערך הוא רשימה של איברים שמשוייכים כולם לאותו המשתנה או לאותו הקבוע.

 

נראה מספר דוגמאות להגדרת מערכים:

<script>
var fruits = ["banana", "apple", "orange"];

var names = [
	"Yael",
	"Tamar",
	"Rotem"
];

const areas = ["Haifa", "Tel Aviv", 70];
</script>

הגדרנו מערך בשם fruits שכולל 3 איברים: המחרוזת "banana" במקום ה-0, המחרוזת "apple" במקום ה-1 והמחרוזת "orange" במקום ה-2.

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

המערך areas הוגדר להיות const ולכן מרגע שהוא הוגדר, לא ניתן יהיה לקבוע את areas כמערך אחר (נשים לב: כן ניתן יהיה לשנות את המערך areas עצמו). הוא כולל 3 איברים, כאשר 2 מהם (מקומות 0 ו-1) מחרוזות והשלישי האחרון (במקום 2) הוא מספר.

 

נוכל גם להגדיר מערך ריק ולהוסיף לו איברים באופן הבא:

<script>
var cars = [];
cars[0] = "Subaru";
cars[1] = "Toyota";
cars[2] = "Mazda";
</script>

 

מדוע בכלל אנו זקוקים למערכים?

אם לא היו מערכים, היינו זקוקים להגדיר כל איבר במשתנה/בקבוע אחר. נניח ככה:

<script>
var fruit1 = "banana";
var fruit2 = "apple";
var fruit3 = "orange";
</script>

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

 

פעולות על מערכים

נדגים מספר פעולות על מערכים ונסביר כל פעולה.

<script>
const cities = ["New York", "Amsterdam", "Jerusalem", "Tokyo"];
var numCities = cities.length; // 4
var israelCapital = cities[2]; // Jerusalem
cities[0] = "Seattle";
console.log(cities); // ["Seattle", "Amsterdam", "Jerusalem", "Tokyo"]
console.log(Array.isArray(cities)); // true
</script>

הגדרנו מערך של ערים בשם cities.

התכונה length מחזיקה את כמות האיברים במערך, בדוגמה שלנו 4.

כדי לגשת לאיבר מסויים במערך, נרשום את המקום של האיבר בסוגריים, למשל cities[2] שמחזיר את האיבר במקום ה-2 (נזכור כי הספירה מתחילה מ-0).

נוכל לבצע החלפה של איבר במערך על ידי גישה ישירה למקום של האיבר במערך, למשל השמה לתוך cities[0].

נשאלת השאלה: כיצד ניתן לשנות איבר במערך אם הוא מוגדר כ-const?

התשובה: מערך שמוגדר כ-const ניתן לשנות לו איברים (ואף להוסיף ולמחוק איברים), אבל לא ניתן להגדירו מחדש. קצת מבלבל.

הפונקציה Array.isArray בודקת אם האובייקט שבסוגריים הוא מערך ומחזירה ערך בוליאני (true או false) בהתאם.

 

שימוש במערך כמחסנית LIFO Stack

מחסנית היא מבנה נתונים שמבוסס על רשימת איברים שעובדת בשיטת LIFO, כלומר Last In First Out. האיבר האחרון שמוכנס למחסנית עם push הוא האיבר הראשון שיצא עם pop.

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

 

דוגמה לשימוש במערך כמחסנית:

<script>
const cities = ["New York", "Amsterdam", "Jerusalem", "Tokyo"];
cities.push("Sydney"); // ["New York", "Amsterdam", "Jerusalem", "Tokyo", "Sydney"]
cities.push("Berlin"); // ["New York", "Amsterdam", "Jerusalem", "Tokyo", "Sydney", "Berlin"]
cities.push("Cairo"); // ["New York", "Amsterdam", "Jerusalem", "Tokyo", "Sydney", "Berlin", "Cairo"]
var city = cities.pop(); // "Cairo"
console.log(cities); // ["New York", "Amsterdam", "Jerusalem", "Tokyo", "Sydney", "Berlin"]
city = cities.pop(); // "Berlin"
console.log(cities); // ["New York", "Amsterdam", "Jerusalem", "Tokyo", "Sydney"]
</script>

ניתן לראות כי כל פקודת push מוסיפה איבר לסוף המערך (שמשמש כמחסנית) וכל פקודת pop מוציאה את האיבר האחרון שהוכנס.

 

שימוש במערך כתור FIFO Queue

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

תור הוא הוא מבנה נתונים שמבוסס על רשימת איברים שעובדת בשיטת FIFO, כלומר First In First Out. האיבר הראשון שמוכנס לתור עם push הוא האיבר הראשון שיצא עם shift.

תור הפוך הוא מבנה נתונים כמו תור, רק שסדר ההכנסה הפוך. האיבר הראשון שמוכנס עם unshift הוא האיבר הראשון שיצא עם pop.

נוח יותר לזכור כי unshift מכניס ערך בתחילת המערך (ולמעשה "דוחף" את כל האיברים שהוכנסו לכיוון סוף המערך) וכי shift מוציא את הערך שבתחילת המערך (ולמעשה "מושך" את כל האיברים שהוכנסו לכיוון תחילת המערך).

 

דוגמה להכנסה ולהוצאה של איברים מתחילת מערך:

<script>
const cities = ["New York", "Amsterdam", "Jerusalem", "Tokyo"];
cities.unshift("Sydney"); // ["Sydney", "New York", "Amsterdam", "Jerusalem", "Tokyo"]
cities.unshift("Berlin"); // ["Berlin", "Sydney", "New York", "Amsterdam", "Jerusalem", "Tokyo"]
cities.unshift("Cairo"); // ["Cairo", "Berlin", "Sydney", "New York", "Amsterdam", "Jerusalem", "Tokyo"]
var city = cities.shift(); // "Cairo"
console.log(cities); // ["Berlin", "Sydney", "New York", "Amsterdam", "Jerusalem", "Tokyo"]
city = cities.shift(); // "Berlin"
console.log(cities); // "Sydney", "New York", "Amsterdam", "Jerusalem", "Tokyo"]
</script>

 

הוספת תגובה
YouTube previewPlay

שנקפיץ יחד את העסק שלך לגבהים חדשים?

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

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

 

אל תהססו! מלאו את הטופס או התקשרו עכשיו 077-7644819

 
WhatsApp
שנקפיץ לך את העסק?
לחץ כאן
התקשר עכשיו 077-7644819
או מלא את הטופס להלן: