JavaScript מערך ויצירתו.

במאמר זה נבחן JavaScript מערך, מרכיביו.JavaScript היא שפת scripting אוריינטציה מושלמת, שנוצרה עבור תכנות.למעשה, הוא מבין שפה (סטנדרטי ECMA-262) ECMAScript.

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

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

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

שים לב ש- JavaScript - סימן מסחרי רשום של חברת Oracle דאגה.

מהו מערך?נתוני מערך נקרא

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

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

ייצור

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

  • ריק = [];// מערך ריק;numers
  • = var [4, 1, 2, 5];// מערך עם חמישה רכיבים דיגיטליים;הבדל var
  • = [1.5,null, טקסט «כוזב"];// מערך עם שלושה אלמנטים מסוגים שונים.

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

דרך שנייה כדי ליצור מערך של המעצב הוא להתקשר Array ().תזמין אותו שלוש שיטות: מעצב קורא

  • בלי ויכוחים: var ב - מערך חדש ().זה חוזה יצירת מקבילה מערך ריק [] ריק מילולי.מעצב
  • בבירור להצביע על שווי מערך רכיבי n: ב var = מערך חדש (1, 3, 5, 8, "קו», אמיתי).במקרה זה, המעצב הציג רשימה של טיעונים, שהומרו לרכיבים של המערך החדש.טיעוניהם בכתב למערך הוא המיקום בהם מצויינים.
  • טווחים להמשך הקצאת ערכים.הדבר נעשה על ידי המפרט את מערך זיהוי של מספרים המצורפים בסוגריים: var ב = מערך חדש (5).שיטה זו של גילוי כרוך בהקצאת מערך של המספר הנדרש של רכיבים (כל אחד מהם רשומה כמוגדר) עם האפשרות להקצאת ערכים בתהליך של דיון.טופס זה משמש בדרך כלל למראש להקצות Javascript-המערך שאורכו ידוע מראש.

כתיבה, קריאה ומערך חלקי הוספת

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

שבמערך JavaScript יכול לאחסן כל מספר של אלמנטים מכל סוג.אורך

של

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

הגיע לרכיב הסופי של המערך, אתה יכול להשתמש באורך מלא.הפריט האחרון

יש מדד אחד פחות מגודלו של המערך.לאחר הספירה תמיד להתחיל מהתחלה.אה, JavaScript זה!אורכו של המערך זה תלוי במספר הפריטים המדויק.לכן, אם אתה לא יודע עד כמה הם צריכים להיות, אבל אתה צריך לפנות לאלמנט האחרון של המערך, אתה צריך ליישם את השיא: v.length - 1. חלקי חזה

מערך

לעתים קרובות מאוד, רכוש האורך משמש ללחזר על המערך של חלקים במחזור:

= פירות var
  • [«תות", "", "תפוח אפרסק", "בננה"];
  • ל( אני var = 0; i & lt; fruits.lenght; i ++);document.write
  • (פירות [i] + «...»).

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

לאתחל רכיבים.

זום ומערך חיתוך

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

מאוד קל לנקות בגלל המערך: foo.length = 0.

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

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

הרב ממדי מערכי

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

אסוציאטיבי מערכי

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

פלט

ועכשיו אנו לומדים בJavaScript?הפלט של המערך לתיבת הדו-שיח (על המסך), ואת ערכי הפלט של הרכיבים של המערך.

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

ניקוי

כדי לסנן מערך של JavaScript, אתה צריך לאפס את האורך:

  • var myArray = [1, 2, 5, 23];
  • myArray.length = 0.

הבא מציג את יישום היעד ברור (), במסגרת JavaScript-, אב טיפוס:

  • ברור: פונקציה () {;this.length
  • = 0;
  • להחזיר את זה;
  • }.הוספה והסרה של רכיבי

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

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

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

unshift, משמרת, פופ ולדחוף

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

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

בדרך כלל ב- Internet Explorer בגרסה השמינית unshift יכול לחזור לא מוגדר, בדפדפנים אחרים - הערך החדש של אורך.אז על ערך ההחזרה מunshift עדיף לא לקוות.

הוספה והסרה של חלקים באמצע המערך

אם ברצונך למחוק מערך של JavaScript, אתה צריך לקחת?זה ידוע שיש לו את השיטה Array.prototype.splice אחוי חתימה.

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

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

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

בעיקרון, האפשרות השנייה בשיטת אחוי הוא לא חובה, אבל ההתנהגות של טיעון אחד בכל דפדפן אחר.

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

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

מפתחות

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

- למצוא (מפתח).

- INSERT (ערך, מפתח).

- הסר (מפתח).

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

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

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

דרך, תמיכה במערכים כאלה יש שפות רבות פירשו ברמה גבוהה תכנות כגון PHP, Perl, Ruby, Python, Tcl, JavaScript, ואחרים.עבור שפות שאין להם כלים מובנים לעבודה עם מערכים אסוציאטיביים, יצר מספר עצום של יישומים בצורה של ספריות.דוגמא

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

Associated הארכת

שהמפורסם ביותר של הרחבה כולל את הפעולות הבאות:

  • כל - «ללכת» להציל את כל הזוגות.
  • ברור - למחוק את כל הערכים.
  • MIN - למצוא זוג עם מפתח הנמוך ביותר.
  • MAX - למצוא את הזוג עם המכריע ביותר.

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

של

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

ידוע ביותר יישום, המבוסס על עצי חיפוש שונים.לדוגמא, בSTL חדר קריאה טיפוסי של מיכל מפת ++ C מתממש על הבסיס שחור ועץ מהגוני.בסגנון של רובי, Tcl, Python משמש סוג של שולחן חשיש.יש גם יישום אחר.

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

ידוע כי יישומים המבוססים על שולחנות חשיש, שהוגדרו כO הממוצע הזמן (1), שהוא טוב יותר מאשר הפעולות המבוססות על עץ החיפוש.כמובן, זה לא מבטיח ביצוע מהיר של פעולות מסוימות: משך משפט INSERT נקרא המקרה הגרוע ביותר O (n).תהליך INSERT מתבצע במשך זמן רב כאשר יחס החובה מגיע לנקודה הגבוהה ביותר, ויש הצורך לשחזר את טבלת מדד חשיש.

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