۱۱- آرایه

آرایه (Array) چندین متغیر با یک نام است. هر یک از متغیرهای درون آرایه با یک شماره که به آن اندیس (Indice) می‌گوییم از یکدیگر متمایز می‌شوند. هر یک از متغیرهای درون آرایه را اِلمنت‌های آرایه می‌نامند.

قواعد نام گذاری آرایه

  • قواعد نامگذاری آرایه همانند متغیر است.
  • اندیس از عدد [0] آغاز و درون براکت نوشته می‌شود.

مراحل استفاده از آرایه

  • Declare: تعیین نام آرایه و اختصاص فضا در حافظه
  • Assignment: نوشتن مقدار در آن
  • Access: خواندن مقدار از آن

روش‌های استفاده از آرایه

1.

// Declare & Assignment
let color = ["red", "gold", "olive", "beige", "khaki"];

// Access
alert(color[0]);    // red
alert(color[1]);    // gold
alert(color[2]);    // olive
alert(color[3]);    // beige
alert(color[4]);    // khaki

2.

// Declare
let color = [];

// Assignment
color[0] = "red";
color[1] = "gold";
color[2] = "olive";
color[3] = "beige";
color[4] = "khaki";

// Access
alert(color[0]);    // red
alert(color[1]);    // gold
alert(color[2]);    // olive
alert(color[3]);    // beige
alert(color[4]);    // khaki

افزودن یک المنت

شما همیشه می‌توانید یک المنت به انتهای آرایه بیفزایید.


// Declare & Assignment
let color = ["red", "gold", "olive", "beige"];

// Access
alert(color[4]);    // undefined 

// Add Element
color[4] = "khaki";

// Access
alert(color[4]);    // khaki

تغییر مقدار یک المنت

شما همیشه می‌توانید مقدار درون هر یک از المنت‌های آرایه را تغییر دهید.


// Declare & Assignment
let color = ["red", "gold", "olive", "beige", "khaki"];

// Access
alert(color[2]);    // olive

// Change
color[2] = "lime";

// Access
alert(color[2]);    // lime


arr.length

تعداد المنت‌های آرایه را باز می‌گرداند.


// Declare & Assignment
let color = ["red", "gold", "olive", "beige", "khaki"];

// Count
alert(color.length);    // 5

// Add element
color[5] = "lime";

// Count
alert(color.length);    // 6

حفره تعریف نشده

افزودن المنت می‌تواند در بین آرایه حفره تعریف نشده (undefined holes) ایجاد کند.


// Declare & Assignment
let color = ["red", "gold", "olive", "beige", "khaki"];

// Count
alert(color.length);    // 5

// Add element
color[7] = "lime";

// Count
alert(color.length);    // 8


arr.push(elm1, elm2, …)

برای پرهیز از ایجاد حفره تعریف نشده، با این دستور یک یا چند المنت به انتهای آرایه بیفزایید.

این فانکشن تعداد جدید المنت‌های آرایه را برمی‌گرداند.


// Declare & Assignment
let color = ["red", "gold", "olive", "beige", "khaki"];

// Count
alert(color.length);    // 5

// Add element
let c = color.push("lime");

// Access
alert(c);    // 6
alert(color) // red, gold, olive, beige, khaki, lime


arr.pop( )

آخرین المنت آرایه را حذف می‌کند و مقدار آن را برمی‌گرداند.


// Declare & Assignment
let color = ["red", "gold", "olive", "beige", "khaki"];

// Count
alert(color.length);    // 5

// Add element
let c = color.pop();

// Access
alert(c);    // khaki
alert(color) // red, gold, olive, beige


arr.shift( )

اولین المنت آرایه را حذف می‌کند و مقدار آن را برمی‌گرداند.


// Declare & Assignment
let color = ["red", "gold", "olive", "beige", "khaki"];

// Count
alert(color.length);    // 5

// Add element
let c = color.shift();

// Access
alert(c);    // red
alert(color) // gold, olive, beige, khaki


arr.unshift(elm1, elm2, …)

یک یا چند المنت به ابتدای آرایه می‌افزاید. و تعداد جدید المنت‌های آرایه را برمی‌گرداند.


// Declare & Assignment
let color = ["red", "gold", "olive", "beige", "khaki"];

// Count
alert(color.length);    // 5

// Add element
let c = color.unshift("lime");

// Access
alert(c);    // 6
alert(color) // lime, red, gold, olive, beige, khaki


arr.splice(start, delCount, elm1, elm2, …)

یک یا چند المنت در میان آرایه حذف یا اضافه می‌کند. المنت‌های حذف شده را برمی‌گرداند.

1.

// Declare & Assignment
let color1 = ["red", "gold", "olive", "beige", "khaki", "lime"];
let color2 = [];

color2 = color1.splice(3);

// Access
alert(color1);    // red, gold, olive
alert(color2);    // beige, khaki, lime

2.

// Declare & Assignment
let color1 = ["red", "gold", "olive", "beige", "khaki", "lime"];
let color2 = [];

color2 = color1.splice(3,2);

// Access
alert(color1);    // red, gold, olive, lime
alert(color2);    // beige, khaki

3.

// Declare & Assignment
let color1 = ["red", "gold", "olive", "beige", "khaki", "lime"];
let color2 = [];

color2 = color1.splice(3,2, "pink", "blue", "tan");

// Access
alert(color1);    // red, gold, olive, pink, blue, tan, lime
alert(color2);    // beige, khaki

4.

// Declare & Assignment
let color1 = ["red", "gold", "olive", "beige", "khaki", "lime"];
let color2 = [];

color2 = color1.splice(3, 0, "pink", "tan");

// Access
alert(color1);  // red, gold, olive, pink, tan, beige, khaki, lime
alert(color2);  // []


arr.concat(arrX, arrY, …)

دو یا چند آرایه را در هم ادغام می‌کند و یک آرایه برمی‌گرداند.


// Declare & Assignment
let color = [];
let color1 = ["red", "gold", "olive"];
let color2 = ["beige", "khaki", "lime"];

color = color1.concat(color2);

// Access
alert(color1);    // red, gold, olive
alert(color2);    // beige, khaki, lime
alert(color);    // red, gold, olive, beige, khaki, lime


arr.sort( )

المنت‌های یک آرایه را به ترتیب الفبا، مرتب می‌کند. المنت‌های تعریف نشده را حذف می‌کند.


// Declare & Assignment
let color = ["red", "gold", "olive", "beige", "khaki", "lime"];

color.sort();

// Access
alert(color);  // beige, gold, khaki, lime, olive, red


arr.sort(compareFunc(a, b))

compareFunc(a, b) < 0 -> a before b
compareFunc(a, b) = 0 -> unchange
compareFunc(a, b) > 0 -> a after b

arr.sort((a, b) => a – b)


// Declare & Assignment
let num = [4, 2, 5, 1, 3];

num.sort((a, b) => a - b);

// Access
alert(num);  // 1, 2, 3, 4, 5


arr.filter(Func(value, index))

با المنت‌هایی که تست را پاس کنند، یک آرایه جدید می سازد.


arr.map(Func(value, index))

هر المنت را با فانکشن تغییر می‌دهد و آرایه جدید می‌سازد.


arr.join(” , “) -> String

المنت‌های آرایه را با جداکننده “,” به هم متصل می‌کند و یک استرینگ می‌سازد.


str.split(” , “) -> Array

یک استرینگ را با کمک جداکننده “,” از هم جدا کرده یک آرایه می‌سازد.