با عرض سلام خدمت کاربران سایت پی وی لرن.
در این جلسه قصد داریم تا با توابع کار با آرایه در جاوا اسکریپت JavaScript شامل تبدیل آرایه به رشته در جاوا اسکریپت ، تابع ()pop ، تابع ()push و .. آشنا شویم.
این توابع، کار با آرایه ها و استفاده از آن ها را ساده تر می کند.
برای تبدیل آرایه به رشته در جاوا اسکریپت از متد ()toString استفاده خواهیم کرد:
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; document.getElementById("demo").innerHTML = fruits.toString(); |
نتیجه مثال بالا:
1 | Banana,Orange,Apple,Mango |
تابع ()join نیز مانند تابع بالا عمل می کند با این تفاوت که می توانید جدا کننده را مشخص کنید:
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; document.getElementById("demo").innerHTML = fruits.join(" * "); |
نتیجه مثال بالا:
1 | Banana * Orange * Apple * Mango |
این تابع آخرین عنصر آرایه را حذف می کند:
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.pop(); // Removes the last element ("Mango") from fruits |
این تابع مقدار عنصری را که حذف شده است را بر می گرداند.
متد ()pop مقداری را که “ظاهر شد” باز می گرداند:
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; var x = fruits.pop(); // the value of x is "Mango" |
این تابع یک عنصر را به انتهای آرایه اضافه می کند:
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.push("Kiwi"); // Adds a new element ("Kiwi") to fruits |
این تابع طول آرایه جدید را بر می گرداند.
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; var x = fruits.push("Kiwi"); // the value of x is 5 |
تابع ()shift مانند تابع pop عمل می کند با این تفاوت که به جای عنصر آخر، اولین عنصر را حذف می کند و تمام عناصر را به یک واحد اندیس کمتر شیفت می دهد:
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.shift(); // Removes the first element "Banana" from fruits |
این تابع نیز مقدار عنصر حذف شده را بر می گرداند.
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; var x = fruits.shift(); // the value of x is "Banana" |
تابع ()unshift یک عنصر را به ابتدای آرایه اضافه می کند و تمام عناصر را به یک واحد اندیس بیشتر شیفت می دهد:
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.unshift("Lemon"); // Adds a new element "Lemon" to fruits |
این تابع نیز طول آرایه جدید را بر می گرداند.
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.unshift("Lemon"); // Returns 5 |
عناصر آرایه ها با استفاده از شماره ی index آن ها قابل دسترسی اند.
نکته : index های آرایه از ۰ شروع می شود(یعنی شماره اندیس دومین عنصر آرایه ۱ ، سومی ۲ و … می باشد).
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits[0] = "Kiwi"; // Changes the first element of fruits to "Kiwi" |
با استفاده از خصوصیت length نیز می توانید عناصر یک آرایه را اضافه کنید :
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits[fruits.length] = "Kiwi"; // Appends "Kiwi" to fruits |
برای حذف عناصر آرایه در جاوا اسکریپت از عملگر delete استفاده می کنیم:
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; delete fruits[0]; // Changes the first element in fruits to undefined |
نکته : استفاده از دستور delete برای حذف عناصر آرایه ممکن است حفره های ناشناس در آرایه ایجاد کنند، بجای این دستور از ()pop یا ()shift استفاده کنید.
با استفاده از متد ()splice نیز می توانید آیتم های جدیدی را به آرایه اضافه کنید:
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(2, 0, "Lemon", "Kiwi"); |
پارامتر اول (۲) موقعیتی را که عناصر جدید باید اضافه شود ((spliced in)) تعریف می کند.
پارامتر دوم (۰) چند عنصر را حذف می کند.
بقیه پارامترها (“Lemon” , “Kiwi”) عناصر جدید را اضافه می کنند.
متد ()splice با اقلام حذف شده آرایه را باز می گرداند:
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(2, 2, "Lemon", "Kiwi"); |
با تنظیم پارامتر ، شما می توانید از ()splice برای حذف عناصر بدون ایجاد حفره در آرایه استفاده کنید:
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(0, 1); // Removes the first element of fruits |
اولین پارامتر (۰) موقعیتی را که عناصر جدید باید اضافه شود ((spliced in)) تعریف می کند.
پارامتر دوم (۱) چند عنصر را حذف می کند.
بقیه پارامترها حذف می شوند. عناصر جدید اضافه نخواهند شد.
برای جمع آرایه ها در جاوا اسکریپت از تابع ()concat استفاده می کنیم:
1 2 3 | var myGirls = ["Cecilie", "Lone"]; var myBoys = ["Emil", "Tobias", "Linus"]; var myChildren = myGirls.concat(myBoys); // Concatenates (joins) myGirls and myBoys |
خروجی کد بالا به شکل زیر خواهد بود:
1 | Cecilie,Lone,Emil,Tobias,Linus |
این تابع توابع موجود را تغییر نمی دهد و یک آرایه جدید بر می گرداند.
این تابع می تواند چندین پارامتر بپذیرد.
1 2 3 4 | var arr1 = ["Cecilie", "Lone"]; var arr2 = ["Emil", "Tobias", "Linus"]; var arr3 = ["Robin", "Morgan"]; var myChildren = arr1.concat(arr2, arr3); |
متد () concat همچنین می تواند مقادیر را به عنوان پارامتر بپذیرد :
1 2 | var arr1 = ["Cecilie", "Lone"]; var myChildren = arr1.concat(["Emil", "Tobias", "Linus"]); |
این تابع یک آرایه جدید از زیر مجموعه آرایه موجود بر می گرداند:
1 2 | var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(1); |
نتیجه به شکل زیر خواهد بود:
1 | Orange,Lemon,Apple,Mango |
نکته : متد ()slice یک آرایه جدید ایجاد می کند. این عناصر را از آرایه منبع حذف نمی کند.
این مثال یک قسمت از آرایه را از عنصر آرایه ۳ (“Apple”) برمی دارد:
1 2 | var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(3); |
متد ()slice می تواند عملیات را روی دو آرگومان مانند (slice(1, 3 انجام دهد.
این متد سپس عناصر را از آرگومان اول شروع و تا (اما نه از جمله) آرگومان پایان انتخاب می کند.
1 2 | var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(1, 3); |
اگر پارامتر انتها حذف شده باشد، مانند مثالهای اول، متد ()slice از بقیه آرایه جدا می کند.
1 2 | var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(2); |
جاوا اسکریپت به طور خودکار یک آرایه را به یک رشته جدا شده با کاما تبدیل می کند زمانی که یک مقدار ابتدایی انتظار می رود.
این همیشه زمانی است که شما سعی می کنید خروجی یک آرایه را ایجاد کنید.
این دو نمونه نتیجه ی مشابهی خواهند داشت.
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; document.getElementById("demo").innerHTML = fruits.toString(); |
1 2 | var fruits = ["Banana", "Orange", "Apple", "Mango"]; document.getElementById("demo").innerHTML = fruits; |
نکته : تمام آبجکت های آرایه یک ()toString دارند.
هیچ توابع درونی برای پیدا کردن بالاترین یا کمترین مقدار در یک آرایه جاوا اسکریپت وجود ندارد.
البته در بخش بعدی به شما خواهیم آموخت که چگونه این مشکل را حل کنید.
جلسه توابع کار با آرایه در جاوا اسکریپت JavaScript به پایان رسید.
در جلسه بعد به مرتب سازی آرایه ها در جاوا اسکریپت خواهیم پرداخت.با ما همراه باشید