در جاوا اسکریپت، آرایه های چند بعدی، آرایه هایی از آرایه ها هستند. برای دسترسی به عنصری از مثلاً یک آرایه دو بعدی، باید دو بار عملگر را مشخص کنید.
فرض کنید ماتریس متغیر آرایه ای از آرایه های اعداد صحیح است. هر یک از عناصر ماتریس[j] آرایه ای از اعداد است. برای اشاره به یک عدد واحد، از نماد استفاده می کنیم: matrix[j][k].
مثال. برای ایجاد جدول ضرب از یک آرایه دو بعدی استفاده می کنیم.
var matrix = new Array(10); // 10 ردیف در ماتریس وجود دارد
for(var j = 0; j< matrix.length; j++)
matrix[j] = new Array(10); //d هر سطر 10 ستون ایجاد می کند
for(var row = 0; row< matrix.length; row++) {
for(col = 0; col< matrix .length; col++) {
ماتریس = row*col; // پر کردن عناصر آرایه
نتیجه var = ماتریس ; // نتیجه ضرب 24
استفاده معمولی از آرایه دو بعدی در جاوا اسکریپت، ایجاد آرایه ای از گزینه های منوی سفارشی است. فرض کنید برخی از گزینه های منوی اصلی با گزینه های زیر منوی کشویی مطابقت دارند. بیایید یک آرایه ایجاد کنیم که طول آن با تعداد گزینه های منوی اصلی مطابقت دارد. عناصر این آرایه آرایه هایی از نام گزینه های زیر منوهای مربوطه خود خواهند بود.
menu = new Array();
منو = آرایه جدید ("گزینه 1.1"، "گزینه 1.2"، "گزینه 1.3")؛
menu = آرایه جدید ("گزینه 2.1"، "گزینه 2. 2");
menu = new Array ("گزینه 3.1"، "گزینه 3.2"، "گزینه 3.3"، "گزینه 3.4");
برای دسترسی به گزینه 1 از منوی فرعی دوم، باید بنویسید:
منو // مقدار "گزینه 2.1" است.
بیایید ساختار آرایه را طوری تغییر دهیم که هم نام گزینههای منوی اصلی و هم گزینههای زیرمنو را شامل شود:
منو = آرایه جدید ()
menu = آرایه جدید ("Menu1"، "Menu2"، "Menu3");
menu = new Array();
menu = new Array ("گزینه 1.1"، "گزینه 1.2"، "گزینه 1.3");
menu = آرایه جدید ("گزینه 2.1"، "گزینه 2. 2");
منو = آرایه جدید ("گزینه 3.1"، "گزینه 3.2"، "گزینه 3.3"، "گزینه 3.4")؛
منو // مقدار "Menu2" است
منو // مقدار "Menu3" است
مقدار منو // "گزینه 2.1" است
منوی // مقدار "گزینه 3.2" است
روش های آرایه
AT این بخشبیایید به روش هایی نگاه کنیم که توسط آنها می توانید عناصر آرایه ها را دستکاری کنید.
پیوستن() -روشی که هر یک از عناصر آرایه را به یک رشته تبدیل می کند و آنها را به هم متصل می کند. به عنوان یک آرگومان برای متد، می توانید یک رشته اختیاری را که برای جداسازی عناصر مجزا در رشته کل طراحی شده است، مشخص کنید. اگر جداکننده را مشخص نکنید، به طور پیش فرض برای تعیین حدود از کاما استفاده می شود.
var arr = ; // آرایه ای از سه عنصر داده شده است
varstr = arr.join(); // مقدار str "12,23,38" است
str = arr.join("; "); // str == "12; 23; 38"
همانطور که قبلا ذکر شد، متد Array.join() معکوس متد String.split() است که رشته ها را به عناصر آرایه تقسیم می کند.
معکوس() -روشی که ترتیب عناصر در یک آرایه را معکوس می کند. این روشآرایه جدیدی ایجاد نمی کند، اما ترتیب آنها را در آرایه اصلی تغییر می دهد.
var arr = آرایه جدید (1,2,3); // arr = 1، arr = 2، arr = 3
arr.reverse(); // arr = 3، arr = 2، arr = 1
var str = arr.join(); // str == "3،2،1"
مرتب سازی() -روشی که عناصر یک آرایه را در جای خود مرتب می کند و آرایه مرتب شده را برمی گرداند. اگر متد sort() بدون آرگومان فراخوانی شود، عناصر آرایه را بر اساس حروف الفبا مرتب می کند و آنها را به طور موقت به مقادیر رشته تبدیل می کند تا در صورت لزوم مقایسه انجام شود.
var arr = آرایه جدید ("موز"، "شری"، "سیب");
varstr = arr.join(", "); // str == "سیب، موز، گیلاس"
اگر یک عنصر تعریف نشده در آرایه وجود داشته باشد، به انتهای آرایه منتقل می شود.
برای مرتب کردن نه به ترتیب حروف الفبا، بلکه به روشی دیگر، تابع مقایسه به عنوان آرگومان به روش sort () منتقل می شود که وظیفه آن نشان دادن قاعده ای است که یکی از دو آرگومان آن زودتر قرار می گیرد. در لیست مرتب شده اگر آرگومان دوم باید قبل از آرگومان اول باشد، تابع مقایسه باید مقدار منفی برگرداند. اگر در یک آرایه مرتب شده، آرگومان اول باید از آرگومان دوم پیروی کند، آنگاه تابع باید یک عدد مثبت برگرداند. اگر دو مقدار معادل هستند، یعنی ترتیب آنها مهم نیست، تابع مقایسه باید 0 برگرداند. مثال.
بیایید به ترتیب عددی مرتب کنیم.
var arr = ;
arr.sort(); // به ترتیب حروف الفبا: 11111, 2222, 333, 44
arr.sort(function(اول، دوم) (//
بازگشت اول - دوم؛ ))؛ // ترتیب عددی: 44, 333, 2222, 11111
استفاده از یک تابع به معنای واقعی کلمه در این قطعه کد راحت است زیرا تابع مقایسه یک بار فراخوانی می شود و نیازی به نامگذاری آن نیست.
با تعریف توابع مرتبسازی دیگر، میتوانید طیف گستردهای از روشهای مرتبسازی را پیادهسازی کنید.
concate() -متدی که یک آرایه جدید حاوی عناصر آرایه اصلی را ایجاد و برمی گرداند که با مقادیر تمام آرگومان های مشخص شده در متد concat() تکمیل می شود. در صورتی که آرگومان خود یک آرایه باشد، عناصر آن به آرایه نهایی اضافه خواهد شد. اما، باید توجه داشت که هنگام جداسازی آرایه ها از آرایه، بازگشتی انجام نمی شود.
var arr = ;
arr.concat(4، 5) // نتیجه
arr concat(); // نتیجه
arr concat (،) // نتیجه
arr concat (4، ]) // نتیجه ]
تکه() -روشی که یک زیرآرایه (قطعه) از آرایه اصلی را برمی گرداند. این روش دارای دو آرگومان است که شروع و پایان زیرآرایه برگشتی را نشان می دهد. آرایه برگردانده شده حاوی عناصری از آرایه ای است که شاخص آن با آرگومان اول مشخص شده است تا عنصری که تعداد آن توسط آرگومان دوم مشخص شده است اما شامل آن نمی شود.
اگر یک آرگومان واحد را مشخص کنید، آرایه برگشتی شامل عناصری از موقعیت مشخص شده توسط آرگومان تا انتهای آرایه خواهد بود. یک آرگومان منفی شماره عنصر آرایه را از انتهای آرایه مشخص می کند.
var arr = ;
arr.slice(0,3); // برگشت
arr برش (3)؛ // برگشت
arr برش (1,-1)؛ // برگشت
arr برش (-3،-2); // برگشت
splice()-یک روش عمومی که می تواند برای افزودن و حذف عناصر یک آرایه یا برای هر دو عملیات به طور همزمان استفاده شود. در نتیجه عملیات متد، آرایه اصلی تغییر می کند.
در متد splice() آرگومان اول شاخص آرایه ای را مشخص می کند که حذف و/یا درج از آن شروع می شود، آرگومان دوم تعداد عناصری که باید حذف شوند را مشخص می کند. اگر آرگومان دوم را حذف کنید، عناصر آرایه از موقعیتی که در آرگومان اول متد مشخص شده شروع می شود و تا انتهای آرایه حذف می شود. متد splice() را برمی گرداند آرایه ای از عناصر حذف شدهاگر آرگومان دوم 0 باشد، متد یک آرایه خالی برمی گرداند.
var arr = ;
arr.splice(4); // برمی گرداند؛ arr برابر می شود
arr.splice(1,2); // برمی گرداند؛ arr برابر می شود
دو آرگومان متد splice() که عناصر آرایه ای را که باید حذف شوند را مشخص می کند، می توان با هر عددیآرگومانهای اضافی که عناصری را که باید در آرایه درج شوند، مشخص میکنند، که از شاخص ارائهشده توسط آرگومان اول متد شروع میشوند.
var arr = ;
arr.splice(2,0"ab""cd"); /* بر خواهد گشت ؛ arr می شود */
arr.splice(2،2،3); /* ["ab","cd"] را برمی گرداند. arr می شود ,3,33,44,55] */
باید این واقعیت را در نظر بگیرید که متد splice() آرگومان های آرایه را به عناصر درج شده جداگانه تقسیم نمی کند، بلکه خود آرایه را درج می کند.
push() و pop() -روش هایی که به آرایه ها اجازه می دهد به عنوان پشته استفاده شوند. متد push() عناصر جدیدی را به انتهای آرایه اضافه می کند و طول جدید آرایه را برمی گرداند. متد pop() آخرین عنصر آرایه را حذف می کند و مقدار حذف شده را به عنوان نتیجه برمی گرداند.
هر دو روش آرایه اصلی را اصلاح می کنند. هنگامی که از ترکیبی از متدهای push() و pop() در جاوا اسکریپت در کد خود استفاده می کنید، می توانید از یک آرایه برای ایجاد یک پشته با قانون سرویس first-in و last-out استفاده کنید.
var stack = ; // پشته خالی
stack.push(1,2); // آرایه: 2 را برمی گرداند
پشته. ترکیدن()؛ // آرایه: 2 را برمی گرداند
stack.push(3); // آرایه: 2 را برمی گرداند
stack.pop(); // آرایه: 3 را برمی گرداند
stack.push(); // آرایه: ] 2 را برمی گرداند
پشته. pop() // آرایه: باز خواهد گشت
پشته. ترکیدن()؛ // آرایه: 1 را برمی گرداند
unshift() و shift() -متدهایی که تقریباً مانند push() و pop() کار می کنند، اما عناصر را نه در انتهای آرایه، بلکه در ابتدا درج و حذف می کنند.
متد unshift() یک یا چند عنصر را به ابتدای آرایه اضافه می کند و عناصر را به انتهای آرایه منتقل می کند و طول جدید آرایه را برمی گرداند. متد shift() برای حذف اولین عنصر آرایه استفاده می شود و عنصر حذف شده را برمی گرداند.
var arr = ; // arr:
arr.unshift(1); // arr: 1 برمی گردد
arr.unshift(22); // arr: 2 برمی گردد
arr.shift(); // arr: 22 برمی گردد
arr.unshift(3,); // arr:,1] 3 را برمی گرداند
arr.shift(); // arr:[,1] 3 را برمی گرداند
arr.shift(); // arr: بازخواهد گشت
arr.shift(); // arr: 1 برمی گردد
هنگام فراخوانی متد ()unshift با چندین آرگومان، آن آرگومانها بهطور همزمان درج میشوند، نه یکی در یک زمان، همانطور که در متد splice() اتفاق میافتد. یعنی در آرایه نهایی، مقادیر به همان ترتیبی که در لیست آرگومان نوشته شده بودند، در هنگام فراخوانی متد مرتب می شوند.
toString() و toLocaleString()- متدهایی که هر یک از عناصر آرایه را به یک رشته تبدیل می کنند و لیستی از رشته های دریافتی را که با کاما از هم جدا شده اند نمایش می دهند. روش toString() همانطور که قبلا ذکر شد برای هر شیء در جاوا اسکریپت از جمله یک آرایه در دسترس است. لطفاً توجه داشته باشید که در نتیجه عملکرد روشها، نه براکت مربع و نه هیچ جداکننده دیگری در اطراف مقادیر آرایه باقی نمیماند.
ToString() // "1،2،3" را برمی گرداند.
["a"، "b"، "c"].toString() // "a,b,c" را برمی گرداند.
].toString() // "1,2,s" را برمی گرداند.
متد ()toString همان رشته را برمی گرداند که متد join() بدون پارامتر فراخوانی شود.
()toLocaleString روشی است که در آن رشتههای حاصل با استفاده از یک جداکننده منطقه خاص به هم متصل میشوند.
مثال 1. ایجاد یک بنر چرخه ای (نمایش اسلاید).
بیایید آرایه ای از تصاویر ایجاد کنیم که در فواصل زمانی مشخص در صفحه ظاهر می شوند.
Slide = new Array("./pic/1.gif", "./pic/2.gif", "./pic/3.gif", "./pic/4.gif", "./pic/5.gif", "./pic/6.gif", "./pic/7.gif","./pic/8.gif", "./pic/9.gif");
//Изображения находятся во вложенной папке pic
k=0; Len=Slide.length;
function rotate(){
if (document.images){
document.banner.src=Slide[k];
setTimeout ("rotate()",1*1000);