نحوه تعیین طول یک آرایه جاوا اسکریپت و بسیاری از توابع دیگر برای کار با آنها. حذف از یک آرایه

در این درس با آرایه‌ها آشنا می‌شویم، نحوه ایجاد آن‌ها، انجام عملیات روی عناصر آن‌ها را یاد می‌گیریم و همچنین به روش‌ها و ویژگی‌های اساسی موجود در هنگام کار با آن‌ها نگاه می‌کنیم.

آرایه در جاوا اسکریپت چیست؟

یک آرایه است مجموعه ای از ارزش ها را سفارش داد. مقادیر موجود در این مجموعه عناصر نامیده می شوند. هر عنصر در آرایه شماره سریال (شماره) خود را دارد که به آن شاخص می گویند. ایندکس ها با شروع از 0 شماره گذاری می شوند.

شکل زیر یک آرایه عددی متشکل از 5 عنصر را نشان می دهد. عناصر این آرایه حاوی داده های زیر است: 123 (شاخص 0)، 7 (شاخص 1)، 50 (شاخص 2)، -9 (شاخص 3)، 24 (شاخص 4).

ایجاد (اعلان) آرایه

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

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

مثلا:

Var خالی = ; // خالی آرایه var numbers = ; // آرایه عددی var arr = ; // آرایه حاوی انواع داده های مختلف

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

یک عنصر آرایه خاص توسط شاخص آن قابل دسترسی است. این عملیات را عملیات نمایه سازی نیز می نامند.

مثلا:

// ایجاد یک آرایه متشکل از 3 عنصر var smartphoneColors = ["سیاه"، "سفید"، "خاکستری"]; // در کنسول مرورگر مقادیر عناصر آرایه رنگ‌های هوشمند با شاخص‌های 0 و 2 نمایش داده می‌شود. // "مقدار عنصر آرایه SmartphoneColors با شاخص 0: مشکی" console.log("مقدار عنصر آرایه گوشیColors با شاخص 2: " + SmartphoneColors); // "مقدار عنصر آرایه رنگهای هوشمند با شاخص 0: خاکستری" // مقدار عنصر آرایه رنگهای هوشمند با شاخص 1 را به "قرمز" گوشی هوشمند رنگها = "قرمز" تغییر دهید. // ["مشکی"، "قرمز"، "خاکستری"] // عنصر آرایه رنگ های هوشمند گوشی هوشمند را با شاخص 3 روی مقدار "آبی" تنظیم کنید smartphoneColors = "Blue"; // ["سیاه"، "قرمز"، "خاکستری"، "آبی"]

شما می توانید نه تنها از مقادیر استاتیک، بلکه از عبارات نیز به عنوان مقادیر عناصر آرایه استفاده کنید:

طول متغیر A = 7، عرض A = 5. نقطه var = ;

اشیاء را می توان به عنوان مقادیر عناصر آرایه استفاده کرد.

نقاط متغیر = [ (x1: 5، y1: 3)، (x1: 7، y1: 10)، (x1: 12؛ y1: 0) ]; // آرایه متشکل از 3 شی

راه دیگری برای ایجاد یک آرایهشامل فراخوانی تابع سازنده آرایه است.

یک فراخوانی تابع سازنده بدون آرگومان برای ایجاد یک آرایه خالی استفاده می شود.

Var vala = new Array(); // آرایه خالی

این روش ایجاد یک آرایه معادل یک کلمه است.

اگر عددی را به عنوان آرگومان برای تابع سازنده مشخص کنید، آرایه ای ایجاد می کند که از تعداد مشخص شده عناصر تشکیل شده است. علاوه بر این، همه این عناصر به عنوان ارزش خود تعریف نشده خواهند بود.

Var arr = آرایه جدید (5); // آرایه متشکل از 5 عنصر (مقادیر عنصر تعریف نشده است)

اگر چندین مقدار یا یک مقدار غیر عددی را به تابع سازنده داخل پرانتز ارسال کنید، آرایه ای از آرگومان های ارسال شده به آن ایجاد می کند.

برخلاف بسیاری از زبان های برنامه نویسی دیگر، آرایه ها در جاوا اسکریپت به طور خودکار اندازه خود را تغییر می دهند. آنها ذاتا پویا هستند. چنین آرایه هایی نیازی به دادن ابعاد ندارند. یکی دیگر از ویژگی های متمایز آرایه های جاوا اسکریپت این است که عناصر مختلف یک آرایه می توانند انواع مختلفی از داده ها را داشته باشند.

ویژگی length (طول آرایه)

تعیین طول آرایه (تعداد عناصر) با استفاده از ویژگی length انجام می شود.

//با فهرست کردن مقادیر عناصر در تابع Array var volumeHDDs = new Array("500Gb",""1Tb",""2Tb") یک آرایه ایجاد کنید. //تخصیص متغیر lengthArray به طول آرایه volumeHDDs var lengthArray = volumeHDDs.length;

چگونه اولین عنصر یک آرایه را بدست آوریم

به دست آوردن مقدار اولین عنصر یک آرایه با تعیین عدد 0 در براکت های مربع این آرایه انجام می شود:

//ایجاد یک آرایه متشکل از 3 عنصر var volumeHDDs = new Array("500Gb",""1Tb",""2Tb"); //دریافت مقدار اولین عنصر آرایه var firstValue = volumeHDDs;

چگونه آخرین عنصر یک آرایه را بدست آوریم

مقدار آخرین عنصر یک آرایه با مشخص کردن عبارت array_name.length-1 در براکت های مربع این آرایه به دست می آید:

//ایجاد یک آرایه متشکل از 3 عنصر var volumeHDDs = new Array("500Gb",""1Tb",""2Tb"); //دریافت مقدار آخرین عنصر آرایه var lastValue = volumeHDDs;

تکرار روی یک آرایه

تکرار از طریق عناصر آرایه با استفاده از یک حلقه for انجام می شود.

برای مثال، بیایید تمام عناصر آرایه را تکرار کنیم و مقادیر آنها را در کنسول مرورگر (F12) نمایش دهیم:

//ایجاد یک آرایه nameStudents، متشکل از 4 عنصر var nameStudents = new Array("Petya", "Vasya", "Kolya", "Maxim"); //تکرار عناصر آرایه از 0 تا آرایه طول-1 برای (var i=0; i<= nameStudents.length-1; i++) { console.log(i+1 + " элемент массива = " + nameStudents[i]); }

هدف از اپراتور حذف چیست؟

عملگر حذف نه برای حذف یک عنصر از یک آرایه، بلکه برای اختصاص مقدار تعریف نشده به یک عنصر آرایه داده شده استفاده می شود.

Var namePlanets = آرایه جدید ("زهره"، "عطارد"، "زمین"، "مریخ"); حذف namePlanets; برای (var i=0; i<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

توابع کار با آرایه ها (روش های شی آرایه)

شی Array شامل متدها (توابع) زیر برای کار با آرایه ها است:

  • تغییر مکان
  • بدون تغییر
  • تکه
  • اتصال
  • شکاف
  • معکوس

روش فشار (افزودن یک عنصر به انتهای آرایه)

روش فشار برای افزودن یک عنصر به انتهای آرایه طراحی شده است. مقدار این عنصر به عنوان پارامتری برای این روش مشخص می شود. در نتیجه، روش فشار، تعداد عناصر موجود در آرایه را با در نظر گرفتن آنچه اضافه شده است، برمی گرداند.

Var namePlanets = ["زهره"، "عطارد"، "زمین"، "مریخ"]; namePlanets.push("مشتری"); // 5 console.log(namePlanets); // ["زهره"، "عطارد"، "زمین"، "مریخ"، "مشتری"]

روش pop (حذف آخرین عنصر از یک آرایه)

روش pop برای حذف آخرین عنصر از یک آرایه طراحی شده است. این روش هیچ پارامتری نداره. در نتیجه، مقدار آخرین عنصر (حذف شده) آرایه را برمی گرداند.

Var namePlanets = ["زهره"، "عطارد"، "زمین"، "مریخ"]; namePlanets.pop(); // "Mars" console.log(namePlanets); // ["زهره"، "عطارد"، "زمین"]

متد Shift (حذف اولین عنصر از یک آرایه)

متد shift برای حذف اولین عنصر از آرایه طراحی شده است. عنصر دارای شاخص 0. همه عناصر دیگر آرایه به ابتدا منتقل می شوند، یعنی. برای هر یک از آنها شاخص 1 کاهش می یابد. این روش مقدار عنصر حذف شده را در نتیجه برمی گرداند.

Var namePlanets = ["زهره"، "عطارد"، "زمین"، "مریخ"]; namePlanets.shift(); // "ونوس" console.log(namePlanets); // ["عطارد"، "زمین"، "مریخ"]

روش unshift (افزودن یک عنصر به ابتدای آرایه)

روش unshift برای اضافه کردن یک عنصر به ابتدای آرایه (قبل از عناصر دیگر) طراحی شده است. مقدار این عنصر به عنوان پارامتری برای این روش مشخص می شود. در نتیجه، این روش تعداد عناصر آرایه را با در نظر گرفتن موارد اضافه شده برمی گرداند.

Var namePlanets = ["عطارد"، "زمین"، "مریخ"، "مشتری"]; namePlanets.unshift("زهره"); // 5 console.log(namePlanets); // ["زهره"، "عطارد"، "زمین"، "مریخ"، "مشتری"]

روش slice (کپی بخشی از یک آرایه)

روش slice برای کپی بخشی از یک آرایه طراحی شده است. با این حال، آرایه اصلی را تغییر نمی دهد، اما در نتیجه یک آرایه جدید متشکل از عناصر انتخاب شده را برمی گرداند.

روش slice دارای 2 پارامتر است:

  • 1 پارامتر (الزامی) - برای نشان دادن شاخص عنصری است که از آن شروع به کپی کردن عناصر می شود.
  • پارامتر 2 (اختیاری) - برای نشان دادن شاخص عنصری که لازم است کپی شود در نظر گرفته شده است (در این مورد، در آرایه جدید گنجانده نشده است). اگر آن را مشخص نکنید، عناصر تا انتهای آرایه مشخص شده کپی می شوند.
var namePlanets = ["زهره"، "عطارد"، "زمین"، "مریخ"، "مشتری"]; var newNamePlanets = namePlanets.slice(2, 4); // ["زمین"، "مریخ"]

روش Splice (تغییر محتویات یک آرایه)

روش splice برای تغییر محتویات یک آرایه طراحی شده است. هم برای افزودن عناصر به آرایه و هم برای حذف آنها می توان از آن استفاده کرد.

نحو متد اسپلایس به صورت زیر است:

Array.splice(startIndex, deleteCount [, element1[, element2[, ...]]]); /* startIndex (لازم) - شاخص شروع عنصری که از آن شروع به تغییر آرایه می شود. اگر عددی بزرگتر از طول آرایه را به عنوان startIndex تعیین کنید، شاخص شروع به انتهای آرایه تنظیم می شود. اگر یک عدد منفی را به عنوان startIndex مشخص کنید، عنصر شروع از انتهای آن شمارش می شود. deleteCount (الزامی) - عددی که نشان می دهد چند عنصر باید از آرایه حذف شوند. اگر لازم نیست عناصر از آرایه حذف شوند، deleteCount باید روی 0 تنظیم شود. پس از این، باید حداقل یک عنصر جدید را برای اضافه شدن به آرایه مشخص کنید. اگر عددی را به‌عنوان deleteCount مشخص کنید که از تعداد عناصر باقی‌مانده در آرایه بیشتر باشد، از startIndex شروع می‌شود، در این صورت آنها همچنان حذف می‌شوند (یعنی همه عناصر تا انتهای آرایه، با شروع از فهرست شروع) element1, element2, ... (اختیاری) - عناصری که باید به آرایه اضافه شوند. */

نمونه هایی از استفاده از روش اسپلایس.

استفاده از روش splice برای حذف برخی از عناصر از یک آرایه.

Var namePlanets = ["زهره"، "عطارد"، "زمین"، "مریخ"]; namePlanets.splice(2, 2); //["زمین"، "مریخ"] console.log(namePlanets); // ["زهره"، "عطارد"]

استفاده از متد splice برای حذف یک عنصر از آرایه و افزودن عناصر جدید به آن.

Var namePlanets = ["زهره"، "عطارد"، "زمین"، "مریخ"]; namePlanets.splice(1، 1، "اورانوس"، "نپتون"، "زحل"); // ["Mercury"] console.log(namePlanets); // ["زهره"، "اورانوس"، "نپتون"، "زحل"، "زمین"، "مریخ"]

استفاده از روش splice فقط برای افزودن عناصر جدید به یک آرایه.

Var namePlanets = ["مشتری"، "زحل"، "اورانوس"]; namePlanets.splice(0، 0، "زهره"، "عطارد"، "زمین"، "مریخ"); // console.log(namePlanets); // ["زهره"، "عطارد"، "زمین"، "مریخ"، "مشتری"، "زحل"، "اورانوس"]

روش join (تبدیل آرایه به رشته)

متد join طوری طراحی شده است که تمام عناصر یک آرایه را به یک رشته متصل می کند.

نحو متد پیوستن:

Array.join(); /* جداکننده (اختیاری) - جداکننده ای که به عنوان رشته اتصال بین هر عنصر آرایه استفاده می شود. اگر این پارامتر مشخص نشده باشد، "" به عنوان رشته اتصال استفاده می شود. اگر یک رشته خالی را به عنوان پارامتر مشخص کنید، عناصر آرایه در رشته برگشتی با چیزی از هم جدا نمی شوند */

Var berries = ["انگور"، "انگور"، "مویز"، "رز هیپ"]; var berriesStr1 = berries.join(); // "انگور، انگور، مویز، گل رز" var berriesStr2 = berries.join(""); // "GrapesGrapesCurrantRosehip" var berriesStr3 = berries.join(", "); // "انگور، انگور، مویز، گل رز" var berriesStr4 = berries.join(" + "); // "انگور + انگور + مویز + گل رز"

اگر از غیر رشته ای به عنوان جداکننده استفاده کنید، به رشته تبدیل می شود.

Var berries = ["انگور"، "انگور"، "مویز"، "رز هیپ"]; var berriesStr1 = berries.join(false); // "GrapesfalseGrapesfalseCurrantfalseRosehip" var berriesStr2 = berries.join(4/2); // عناصر آرایه "Grapes2Grapes2Currant2Rose Hip" که دارای مقدار تهی یا تعریف نشده هستند به رشته خالی فرستاده می شوند. var arr = ; var arrStr = arr.join(", "); // "0، 5، -4"

تبدیل رشته به آرایه - تقسیم

روش تقسیم برای تبدیل یک رشته به آرایه طراحی شده است. این متد یک پارامتر دارد که می توانید یک رشته را مشخص کنید که بر اساس آن این رشته به آرایه ای از رشته ها تقسیم می شود.

Var strElementComputers = "واحد سیستم، مانیتور، صفحه کلید، ماوس، بلندگوها، چاپگر"; var elementComputers = strElementComputers.split(", "); console.log("تعداد عناصر در آرایه: " + elementComputers.length); برای (var i=0; i<= elementComputers.length-1; i++) { console.log(i + " элемент массива = " + elementComputers[i]); }

ترتیب مجدد عناصر آرایه به ترتیب معکوس - معکوس

روش معکوس برای مرتب کردن مجدد عناصر آرایه به ترتیب معکوس طراحی شده است.

Var namePlanets = آرایه جدید ("زهره"، "عطارد"، "زمین"، "مریخ"); namePlanets.reverse(); console.log("تعداد عناصر در آرایه: " + namePlanets.length); برای (var i=0; i<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

مرتب سازی عناصر آرایه - مرتب سازی

روش مرتب سازی برای مرتب سازی عناصر آرایه استفاده می شود. به طور پیش فرض، این روش آرایه را به صورت رشته ای مرتب می کند.

Var namePlanets = آرایه جدید ("زهره"، "عطارد"، "زمین"، "مریخ"); namePlanets.sort(); console.log("تعداد عناصر در آرایه: " + namePlanets.length); برای (var i=0; i<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

1396/06/21 ساعت 12:17

برای محاسبه اندازه یک آرایه از اشیاء در جاوا اسکریپت، از ویژگی length آرایه استفاده کنید.

Var arr = ["اول"، "دوم"]; console.log(arr.length); // 2

آرایه ها در جاوا اسکریپت ممکن است دارای اندیس های گم شده باشند. مثلا

Var arr = ; arr = "اول"; arr = "دوم";

ویژگی length حداکثر شاخص آرایه + 1 را برمی گرداند. در مثال داده شده، طول = 5.

محاسبه تعداد عناصر یک آرایه در جاوا اسکریپت

Array.prototype.count = function())(var result = 0; for(var i = 0; i< this.length; i++) if (this[i] != undefined) result++; return result; }

مثال استفاده

Var arr = ; arr = "اول"; arr = "دوم"; console.log(arr.count()); //2

همچنین می توانید مقداری را به ویژگی length اختصاص دهید. این به شما امکان می دهد طول یک آرایه موجود را کاهش دهید.

Var arr = ["اول"، "دوم"، "سوم"]; arr.length = 2; console.log(arr); // ["اول"، "دوم"]

محاسبه اندازه یک آرایه در بایت در جاوا اسکریپت

آرایه ها اشیایی منظم هستند، بنابراین محاسبه اندازه یک آرایه بر حسب بایت تفاوتی با محاسبه اندازه هر شی دیگری ندارد. متأسفانه جاوا اسکریپت یک API برای محاسبه اندازه ارائه نمی دهد، بنابراین باید خودتان آن را محاسبه کنید. این کار به صورت زیر انجام می شود: ما تمام ویژگی های شی را مرور می کنیم؛ اگر ویژگی از نوع اولیه باشد، اندازه یک نمونه از این نوع را به نتیجه کلی اضافه می کنیم؛ اگر ویژگی حاوی یک شی باشد، به صورت بازگشتی محاسبه می کنیم. اندازه آن

تابع sizeOf(obj) ( var bytes = 0; if(obj !== null && obj !== undefined) ( switch(typeof obj) ( case "number": bytes += 8; break; case "string": bytes += obj.length * 2; break; case "boolean": bytes += 4; break; case "object": for(var key in obj) (bytes += sizeOf(obj); ) break; ) ) بایت های برگشتی ; )

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

آخرین به روز رسانی: 1397/03/26

شی Array یک آرایه را نشان می دهد و تعدادی ویژگی و روش ارائه می دهد که با آنها می توانیم آرایه را دستکاری کنیم.

راه اندازی یک آرایه

شما می توانید یک آرایه خالی با استفاده از براکت های مربع یا سازنده Array ایجاد کنید:

Var users = new Array(); افراد var = ; console.log(users); // آرایه console.log(people); //آرایه

شما می توانید بلافاصله یک آرایه را با تعداد معینی از عناصر مقداردهی اولیه کنید:

کاربران Var = آرایه جدید ("تام"، "بیل"، "آلیس")؛ var people = ["سم"، "جان"، "کیت"]; console.log(users); // ["تام"، "بیل"، "آلیس"] console.log(people); // ["سم"، "جان"، "کیت"]

شما می توانید یک آرایه را تعریف کنید و عناصر جدیدی را به آن اضافه کنید:

Var users = new Array(); کاربران = "تام"; کاربران = "کیت"; console.log(users); // "Tom" console.log(users); //تعریف نشده

مهم نیست که به طور پیش فرض آرایه با طول صفر ایجاد شود. با استفاده از شاخص‌ها، می‌توانیم یک یا آن عنصر را در یک آرایه در یک شاخص خاص جایگزین کنیم.

طول

برای فهمیدن طول یک آرایه، از ویژگی length استفاده کنید:

Var fruit = new Array(); میوه = "سیب"; میوه = "گلابی"; میوه = "آلو"; document.write("در آرایه fruit " + fruit.length + " عنصر:
")؛ برای(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

در واقع طول آرایه شاخص آخرین عنصر به اضافه یک خواهد بود. مثلا:

Var users = new Array(); // 0 عنصر در آرایه وجود دارد users = "Tom"; کاربران = "کیت"; کاربران = "سام"; برای(var i=0; i

خروجی مرورگر:

تام کیت undefined undefined Sam

علیرغم این واقعیت که ما عناصری را برای اندیس های 2 و 3 اضافه نکردیم، طول آرایه در این حالت عدد 5 خواهد بود. فقط عناصر با اندیس های 2 و 3 دارای مقدار تعریف نشده خواهند بود.

کپی کردن یک آرایه تکه()

کپی کردن یک آرایه می تواند کم عمق یا کم عمق (کپی کم عمق) و عمیق (کپی عمیق) باشد.

برای کپی کردن سطحی، کافی است به یک متغیر مقدار متغیر دیگری که یک آرایه را ذخیره می کند اختصاص دهیم:

Var users = ["تام"، "سم"، "بیل"]; console.log(users); // ["تام"، "سم"، "بیل"] var people = users; // افراد کپی سطحی = "مایک"; // تغییر عنصر دوم console.log(users); // ["تام"، "مایک"، "بیل"]

در این حالت متغیر People پس از کپی به همان آرایه متغیر users اشاره می کند. بنابراین، هنگام تغییر عناصر در افراد، عناصر موجود در کاربران نیز تغییر می کنند، زیرا در واقع همان آرایه است.

این رفتار همیشه مطلوب نیست. به عنوان مثال، ما می خواهیم که متغیرها پس از کپی به آرایه های جداگانه اشاره کنند. و در این مورد، می توانید با استفاده از متد slice () از کپی عمیق استفاده کنید:

Var users = ["تام"، "سم"، "بیل"]; console.log(users); // ["تام"، "سم"، "بیل"] var people = users.slice(); // کپی عمیق افراد = "مایک"; // تغییر عنصر دوم console.log(users); // ["تام"، "سم"، "بیل"] console.log(people); // ["تام"، "مایک"، "بیل"]

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

متد slice () همچنین به شما امکان می دهد بخشی از یک آرایه را کپی کنید:

Var users = ["تام"، "سم"، "بیل"، "آلیس"، "کیت"]; var people = users.slice(1, 4); console.log(people); // ["سم"، "بیل"، "آلیس"]

متد slice () به ایندکس های شروع و پایان داده می شود که برای بازیابی مقادیر از آرایه استفاده می شود. یعنی در این حالت، انتخاب در آرایه جدید از شاخص 1 به شاخص 4 می‌رود. و از آنجایی که نمایه سازی آرایه از صفر شروع می شود، آرایه جدید شامل عناصر دوم، سوم و چهارم خواهد بود.

فشار دادن()

متد push() یک عنصر را به انتهای آرایه اضافه می کند:

میوه وار = ; fruit.push("سیب"); fruit.push("گلابی"); fruit.push("آلو"); fruit.push("گیلاس"،"زردآلو
")؛ document.write(میوه)؛ // سیب، گلابی، آلو، گیلاس، زردآلو

ترکیدن()

متد pop() آخرین عنصر را از آرایه حذف می کند:

Var fruit = ["سیب"، "گلابی"، "آلو"]; var lastFruit = fruit.pop(); // استخراج آخرین عنصر از آرایه document.write(lastFruit + "
")؛ document.write("در آرایه میوه " + fruit.length + " عنصر:
")؛ برای(var i=0; i ");

خروجی مرورگر:

آلو آرایه میوه دارای 2 عنصر است: گلابی سیب

تغییر مکان()

متد shift() اولین عنصر را از آرایه بازیابی و حذف می کند:

Var fruit = ["سیب"، "گلابی"، "آلو"]; var firstFruit = fruit.shift(); document.write(firstFruit + "
")؛ document.write("در آرایه میوه " + fruit.length + " عنصر:
")؛ برای(var i=0; i ");

خروجی مرورگر:

سیب آرایه میوه دارای 2 عنصر است: آلو گلابی

unshift()

متد unshift() یک عنصر جدید به ابتدای آرایه اضافه می کند:

Var fruit = ["سیب"، "گلابی"، "آلو"]; fruit.unshift("زردآلو"); document.write(fruit);

خروجی مرورگر:

زردآلو، سیب، گلابی، آلو

حذف یک عنصر توسط شاخص splice()

متد splice() عناصر را در یک شاخص خاص حذف می کند. به عنوان مثال، حذف عناصر از شاخص سوم:

Var users = ["تام"، "سم"، "بیل"، "آلیس"، "کیت"]; var deleted = users.splice(3); console.log(حذف شده); // [ "Alice", "Kate" ] console.log(users); // [ "تام"، "سم"، "بیل" ]

متد slice عناصر حذف شده را برمی گرداند.

در این حالت، حذف از ابتدای آرایه رخ می دهد. اگر شاخص منفی را پاس کنید، حذف از انتهای آرایه انجام می شود. به عنوان مثال، بیایید آخرین عنصر را حذف کنیم:

Var users = ["تام"، "سم"، "بیل"، "آلیس"، "کیت"]; var deleted = users.splice(-1); console.log(حذف شده); // [ "Kate" ] console.log(users); // [ "تام"، "سم"، "بیل"، "آلیس" ]

یک نسخه اضافی از روش به شما امکان می دهد شاخص پایانی را برای حذف مشخص کنید. به عنوان مثال، بیایید فهرست اول تا سوم را حذف کنیم:

Var users = ["تام"، "سم"، "بیل"، "آلیس"، "کیت"]; var deleted = users.splice(1,3); console.log(حذف شده); // [ "سم"، "بیل"، "آلیس" ] console.log(users); // [ "تام"، "کیت" ]

نسخه دیگری از روش splice به شما امکان می دهد عناصر جدید را به جای عناصر حذف شده درج کنید:

Var users = ["تام"، "سم"، "بیل"، "آلیس"، "کیت"]; var deleted = users.splice(1,3, "Ann", "Bob"); console.log(حذف شده); // [ "سم"، "بیل"، "آلیس" ] console.log(users); // [ "تام"، "آن"، "باب"، "کیت"]

در این صورت، سه عنصر را از شاخص های 1 تا 3 حذف می کنیم و به جای آن دو عنصر را وارد می کنیم.

concat()

از متد ()concat برای ترکیب آرایه ها استفاده می شود:

Var fruit = ["سیب"، "گلابی"، "آلو"]; var سبزیجات = ["گوجه فرنگی"، "خیار"، "سیب زمینی"]; var products = fruit.concat (سبزیجات); برای(var i=0; i< products.length; i++) document.write(products[i] + "
");

در این مورد، لازم نیست فقط آرایه هایی از همان نوع ترکیب شوند. انواع مختلفی ممکن است:

Var fruit = ["سیب"، "گلابی"، "آلو"]; قیمت var = ; var products = fruit.concat(prices);

پیوستن()

متد join() تمام عناصر یک آرایه را به یک رشته می پیوندد:

Var fruit = ["سیب"، "گلابی"، "آلو"، "زردآلو"، "هلو"]; var fruitString = fruit.join(", "); document.write(fruitString);

متد join() از جداکننده بین عناصر آرایه عبور داده می شود. در این حالت از کاما و فاصله (") به عنوان جداکننده استفاده می شود.

مرتب سازی()

متد sort() آرایه را به ترتیب صعودی مرتب می کند:

Var fruit = ["سیب"، "گلابی"، "آلو"، "زردآلو"، "هلو"]; fruit.sort(); برای(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

خروجی مرورگر:

زردآلو گلابی هلو آلو سیب

معکوس()

متد ()reverse آرایه را معکوس می کند:

Var fruit = ["سیب"، "گلابی"، "آلو"، "زردآلو"، "هلو"]; fruit.reverse(); برای(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

خروجی مرورگر:

هلو زردآلو آلو گلابی سیب

در ترکیب با متد sort() می توانید آرایه را به ترتیب نزولی مرتب کنید:

Var fruit = ["سیب"، "گلابی"، "آلو"، "زردآلو"، "هلو"]; fruit.sort().reverse(); برای(var i=0; i< fruit.length; i++) document.write(fruit[i] + "
");

خروجی مرورگر:

سیب آلو هلو گلابی زردآلو

پیدا کردن شاخص یک عنصر

متدهای indexOf() و lastIndexOf() اندیس اولین و آخرین گنجاندن یک عنصر در آرایه را برمی گرداند. مثلا:

Var fruit = ["سیب"، "گلابی"، "آلو"، "سیب"، "گلابی"]; var firstIndex = fruit.indexOf("apples"); var lastIndex = fruit.lastIndexOf("apples"); var otherIndex = fruit.indexOf("گیلاس"); document.write(firstIndex); // 0 document.write(lastIndex); // 3 document.write(otherIndex); // -1

firstIndex دارای مقدار 0 است زیرا اولین گنجاندن خط "apples" در آرایه در شاخص 0 و آخرین درج در شاخص 3 است.

اگر عنصر در آرایه نباشد، در این صورت متدهای indexOf() و lastIndexOf() مقدار -1 را برمی‌گردانند.

هر()

متد every() بررسی می کند که آیا همه عناصر با شرایط خاصی مطابقت دارند یا خیر:

اعداد Var = [ 1، -12، 8، -4، 25، 42]; شرط تابع (مقدار، شاخص، آرایه) ( نتیجه var = نادرست؛ اگر (مقدار > 0) (نتیجه = درست؛ ) نتیجه را برگرداند؛ ); var pass = numbers.every(condition); document.write(passed); // نادرست

به متد every() تابعی ارسال می شود که شرط را به عنوان یک پارامتر نشان می دهد. این تابع سه پارامتر دارد:

شرایط تابع (مقدار، شاخص، آرایه) ( )

پارامتر مقدار نشان دهنده عنصر آرایه جاری در حال تکرار است، پارامتر شاخص نمایانگر شاخص آن عنصر و پارامتر آرایه مرجعی را به آرایه ارسال می کند.

در این تابع می توانیم مقدار عنصر ارسال شده را برای مطابقت با برخی شرایط بررسی کنیم. به عنوان مثال، در این مثال، هر عنصر آرایه را بررسی می کنیم تا ببینیم که آیا بزرگتر از صفر است یا خیر. اگر بزرگتر باشد، مقدار true را برمی گردانیم، یعنی عنصر شرط را برآورده می کند. اگر کمتر باشد، false را برگردانید - عنصر شرط را برآورده نمی کند.

در نتیجه، زمانی که متد numbers.every(condition) فراخوانی می شود، از میان تمام عناصر آرایه اعداد تکرار می شود و آنها را یکی یکی به تابع شرط می دهد. اگر این تابع true را برای همه عناصر برگرداند، متد every() true را برمی گرداند. اگر حداقل یک عنصر با شرط مطابقت نداشته باشد، متد every() false را برمی‌گرداند.

مقداری()

متد some() مشابه متد every() است، فقط بررسی می کند که آیا حداقل یک عنصر با یک شرط مطابقت دارد یا خیر. و در این مورد، متد some() true را برمی گرداند. اگر هیچ عنصری مطابق با شرط در آرایه وجود نداشته باشد، false برگردانده می شود:

اعداد Var = [ 1، -12، 8، -4، 25، 42]; شرایط تابع (مقدار، شاخص، آرایه) ( نتیجه var = نادرست؛ اگر (مقدار === 8) (نتیجه = درست؛ ) نتیجه را برگرداند؛ ); var pass = numbers.some(condition); // درست است، واقعی

فیلتر()

متد filter() مانند some() و every() یک تابع شرط را می پذیرد. اما در همان زمان آرایه ای از آن عناصری را برمی گرداند که این شرط را دارند:

اعداد Var = [ 1، -12، 8، -4، 25، 42]; شرط تابع (مقدار، شاخص، آرایه) ( نتیجه var = نادرست؛ اگر (مقدار > 0) (نتیجه = درست؛ ) نتیجه را برگرداند؛ ); var filteredNumbers = numbers.filter(condition); برای(var i=0; i< filteredNumbers.length; i++) document.write(filteredNumbers[i] + "
");

خروجی مرورگر:

1 8 25 42

forEach() و map()

متدهای forEach() و map() روی عناصر تکرار می شوند و عملیات خاصی را روی آنها انجام می دهند. به عنوان مثال، برای محاسبه مربع اعداد در یک آرایه، می توانید از کد زیر استفاده کنید:

اعداد Var = [1، 2، 3، 4، 5، 6]; for(var i = 0; i "); }

اما با استفاده از متد forEach() می توانید این ساختار را ساده کنید:

اعداد Var = [1، 2، 3، 4، 5، 6]; تابع مربع(مقدار، شاخص، آرایه) (var result = مقدار * مقدار؛ document.write("مربع عدد " + مقدار + " " + نتیجه + " است
"); )؛ numbers.forEach(square);

متد forEach () به عنوان پارامتر همان تابع را می گیرد که در هنگام تکرار روی عناصر، عنصر فعلی که تکرار می شود به آن منتقل می شود و عملیات روی آن انجام می شود.

متد map () مشابه متد forEach است؛ همچنین تابعی را به عنوان پارامتر می گیرد که روی عناصر آرایه عملیات انجام می دهد، اما متد map() آرایه جدیدی را با نتایج عملیات روی عناصر آرایه برمی گرداند.

به عنوان مثال، بیایید از روش نقشه برای محاسبه مربع اعداد در یک آرایه استفاده کنیم:

اعداد Var = [1، 2، 3، 4، 5، 6]; تابع مربع (مقدار، شاخص، آرایه) (نتیجه بازگشتی = مقدار * مقدار؛ )؛ var SquareArray = numbers.map(square); document.write(squareArray);

تابعی که به متد map() ارسال می شود، عنصر جاری در حال تکرار را دریافت می کند، عملیات را روی آن انجام می دهد و مقداری را برمی گرداند. سپس این مقدار وارد مربع حاصل می شود

در این مقاله به آرایه‌های استاندارد جاوا اسکریپت با شاخص‌های عددی می‌پردازیم. آرایه ها با استفاده از پرانتز اعلام می شوند:

var fruits = ["سیب"، "پرتقال"، "خر"]

برای استخراج یک عنصر، شاخص آن را در پرانتز قرار دهید. اولین شاخص 0:

var fruits = ["سیب"، "پرتقال"، "خر"] هشدار(میوه ها) هشدار(میوه ها) هشدار(میوه ها)

همچنین می توانیم طول یک آرایه جاوا اسکریپت را بدست آوریم:

var fruits = ["سیب"، "پرتقال"، "خر"] هشدار(fruits.length)

اوه! ما یک آرایه با دو میوه و یک الاغ ایجاد کردیم. حالا باید خر را برداریم.

روش های پاپ و فشار

متد pop در جاوا اسکریپت یک عنصر را از آرایه حذف می کند و آن را برمی گرداند.

مثال زیر نشان می دهد که چگونه "Donkey" از یک آرایه بازیابی می شود:

var fruits = ["Apple", "Orange", "Donkey"] alert("I'm remove "+fruits.pop()) // اکنون فقط هشدار ["Apple","Orange"] را داریم("Now اندازه آرایه: "+fruits.length) // خر حذف شد

توجه داشته باشید که pop خود آرایه را تغییر می دهد.

همتای Pop روش فشاری است که یک عنصر را به آرایه اضافه می کند. به عنوان مثال، ما فراموش کردیم یک هلو اضافه کنیم:

var fruits = ["سیب"، "پرتقال"] fruits.push("هلو"); // اکنون ما هشدار ["سیب"، "پرتقال"، "هلو"] داریم ("آخرین عنصر:" + میوه ها)

  1. ایجاد آرایه ای از سبک ها با عناصر " جاز”, “بلوز”;
  2. اضافه کردن ارزش " راک اند رول«;
  3. مقدار دوم را از انتها با مقدار " جایگزین کنید کلاسیک". شما باید با یک آرایه خاتمه دهید: جاز”, ”کلاسیک”, ”راک اند رول" کد باید برای هر طول آرایه ای کار کند.
  4. آخرین مقدار را از آرایه بازیابی کنید و از طریق هشدار نمایش دهید.

راه حل

// 1 var styles = ["Jazz", "Bluez"] // 2 styles.push("Rock"n"Roll") // or: styles = "Rock"n"Roll" // 3 styles = "Classic" " // 4 هشدار(styles.pop())

روش های Shift/Unshift

متدهای shift/unshift در انتهای آرایه کار می کنند، اما می توانید از shift برای جابجایی عناصر به بالا نیز استفاده کنید ( اولین مقدار آرایه با جابجایی عناصر حذف می شود). متد unshift به جاوا اسکریپت اجازه می دهد تا یک عنصر را از انتها به آرایه اضافه کند:

var fruits = ["سیب"، "پرتقال"] var apple = fruits.shift() // اکنون فقط ["نارنجی"] fruits.unshift("لیمو") // اکنون ["لیمو"، " Orange"] alert(fruits.length) // 2

هم shift و هم unshift می توانند روی چندین عنصر به طور همزمان کار کنند:

var fruits = ["سیب"] fruits.push("نارنجی"،"هلو") fruits.unshift("آناناس","لیمو") // اکنون آرایه به این شکل است: ["آناناس"، "لیمو"، "سیب" "، "پرتقال"، "هلو"]

وظیفه خود اداره می شود

کدی را برای نمایش یک مقدار تصادفی از آرایه arr از طریق هشدار بنویسید:

var arr = ["آلو"، "نارنجی"، "خر"، "هویج"، "جاوا اسکریپت"]

نکته: کد به دست آوردن یک عدد تصادفی از حداقل به حداکثر مقدار (شامل) به شرح زیر است:

var rand = min + Math.floor(Math.random()*(max+1-min))

راه حل

باید یک عدد تصادفی از 0 تا arr.length-1 (شامل) استخراج کنیم:

var arr = ["آلو"،"پرتقال"،"خر"،"هویج"،"جاوااسکریپت"] var rand = Math.floor(Math.random()*arr.length) alert(arr)

تکرار روی یک آرایه

در جاوا اسکریپت، تکرار از طریق یک آرایه با استفاده از یک حلقه for انجام می شود:

var fruits = ["آناناس"، "لیمو"، "سیب"، "پرتقال"، "هلو"] for(var i=0; i

وظیفه خود اداره می شود

یک تابع find(arr,value) ایجاد کنید که مقداری را در یک آرایه مشخص پیدا کند و اگر مقدار آن پیدا نشد، شاخص یا -1 آن را برمی گرداند.

مثلا:

arr = [ "test", 2, 1.5, false ] find(arr, "test") // 0 find(arr, 2) // 1 find(arr, 1.5) // 2 find(arr, 0) // -1

راه حل

یک راه حل ممکن ممکن است به شکل زیر باشد:

تابع find(آرایه، مقدار) (برای(var i=0; i

اما این نادرست است زیرا == تفاوت بین 0 و false را تعریف نمی کند.

هنگام کار با آرایه ها در جاوا اسکریپت استفاده از === صحیح تر است. علاوه بر این، آخرین استاندارد ES5 شامل تابع Array#indexOf است. با آن می توانیم تابعی مانند این تعریف کنیم:

تابع find(array, value) (if (array.indexOf) array.indexOf(value) for(var i=0; i)

حتی هوشمندانه تر این است که find را با شرطی برای بررسی وجود متد indexOf تعریف کنیم.

وظیفه خود اداره می شود

یک تابع filterNumeric(arr) ایجاد کنید که یک آرایه را می گیرد و یک آرایه جدید حاوی فقط مقادیر عددی از arr را برمی گرداند.

نمونه ای از اینکه چگونه باید کار کند:

arr = ["a"، 1، "b"، 2]; arr = filterNumeric(arr); // اکنون arr =

راه حل

راه حل این است که از طریق آرایه تکرار کنید و مقادیر را در صورت عددی بودن به یک آرایه جدید اضافه کنید.

بپیوندید و تقسیم کنید

گاهی اوقات برای تبدیل آرایه جاوا اسکریپت به رشته به یک راه سریع نیاز دارید. این همان چیزی است که روش join برای آن است.

با استفاده از جداکننده داده شده، آرایه را به یک رشته متصل می کند:

var fruits = ["لیمو"،"سیب"،"پرتقال"،"هلو"]; var str = fruits.join(", "); هشدار(str);

تبدیل معکوس به راحتی با استفاده از روش تقسیم انجام می شود:

var fruits = "سیب، پرتقال، هلو"; var arr = fruits.split(""); // arr اکنون حاوی ["Apple", "Orange", "Peach"] alert(arr);

وظیفه خود اداره می شود

شی شامل یک ویژگی className است که شامل نام کلاس ها است که با فاصله از هم جدا شده اند:

یک تابع addClass(obj, cls) بنویسید که کلاس cls را اضافه می کند، اما فقط در صورتی که وجود نداشته باشد:

ddClass(obj, "new") // obj.className="باز کردن منوی جدید" addClass(obj, "open") // بدون تغییر (کلاس از قبل وجود دارد) addClass(obj, "me") // obj.className= هشدار "open menu new me" (obj.className) //

راه حل

شما باید className و حلقه را به قطعات تقسیم کنید. اگر کلاس پیدا نشد، اضافه می شود.

حلقه برای افزایش عملکرد کمی بهینه شده است:

تابع addClass(elem، cls) ( for(var c = elem.className.split(" ")، i=c.length-1; i>=0; i--) ( if (c[i] == cls ) return ) elem.className += " "+cls ) var obj = ( className: "open menu" ) addClass(obj, "new") addClass(obj, "open") alert(obj.className) // منوی باز جدید

در مثال بالا، متغیر c در ابتدای حلقه تعریف شده و آخرین اندیس آن بر روی i تنظیم شده است.

خود حلقه در جهت مخالف پردازش می شود و با شرط i>=0 به پایان می رسد. زیرا بررسی i>=0 سریعتر از i است. آنچه در جاوا اسکریپت جستجو را در یک آرایه افزایش می دهد.

استفاده از طول برای برش آرایه

با استفاده از ویژگی length، می توانید یک آرایه را به صورت زیر کوتاه کنید:

شما طول را مشخص می کنید و مرورگر آرایه را کوتاه می کند.

آرایه یک شی است، پس این به چه معناست؟

در واقع، در جاوا اسکریپت، یک آرایه یک شی است که با تنظیم طول خودکار و متدهای خاص کامل می شود.

این با مفهوم در زبان های دیگر متفاوت است، جایی که آرایه ها بخش پیوسته ای از حافظه را نشان می دهند. این نیز با یک صف یا پشته بر اساس لیست های پیوندی متفاوت است.

کلیدهای آرایه غیر عددی

کلیدها اعداد هستند، اما می توانند هر نامی داشته باشند:

arr = arr = 5 arr.prop = 10 // این کار را نکنید

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

به عنوان مثال، push/pop فقط بر روی خارجی ترین عناصر یک آرایه کار می کند، بنابراین آنها فوق العاده سریع هستند.

فشار فقط با انتها کار می کند:

var arr = ["My", "array"] arr.push("something") alert(arr) // string "array"

متدهای shift/unshift کند هستند زیرا نیاز به شماره گذاری مجدد کل آرایه دارند. روش اسپلایس همچنین می تواند باعث تغییر شماره گذاری شود:


بنابراین Shift/Unshift کندتر از push/pop است. هرچه آرایه بزرگتر باشد، مرتب سازی آرایه توسط جاوا اسکریپت بیشتر طول می کشد.

وظیفه خود اداره می شود

نتیجه چه خواهد شد؟ چرا؟

arr = ["a"، "b"] arr.push(function() ( alert(this) )) arr() // ?

راه حل

از آنجایی که آرایه ها اشیا هستند، arr ..در واقع یک متد فراخوانی بر روی یک شی مانند obj است روش:

arr() // مانند arr() // از نظر نحوی نادرست است، اما از نظر مفهومی یکسان است: arr.2() // بازنویسی شده به همان سبک obj.method() this = arr در این مورد به تابع ارسال می شود. بنابراین محتویات arr چاپ می شود. arr = ["a", "b"] arr.push(function() ( alert(this) )) arr() // "a","b",function

آرایه های پراکنده، شرح طول

ویژگی length به شما امکان می دهد اندازه یک آرایه را در جاوا اسکریپت دریافت نکنید، بلکه آخرین شاخص + 1 را دریافت کنید. این زمانی مهم است که در مورد آرایه های پراکنده، با "شکاف" در شاخص ها صحبت می کنیم.

در مثال زیر، دو عنصر را به میوه های خالی اضافه می کنیم، اما مقدار طول 100 باقی می ماند:

var fruits = // میوه‌های آرایه خالی = میوه‌های "هلو" = هشدار "سیب"(fruits.length) // 100 (اما فقط 2 عنصر در آرایه وجود دارد)

اگر بخواهید یک آرایه پراکنده را خروجی بگیرید، مرورگر مقادیر شاخص از دست رفته را به عنوان عناصر خالی برمی گرداند:

var fruits = // میوه های آرایه خالی = میوه های "هلو" = هشدار "سیب"(میوه ها) // ,هلو، سیب (یا چیزی شبیه به آن)

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

آرایه های پراکنده زمانی که روش های آرایه برای آنها اعمال می شود، رفتار عجیبی دارند. آنها نمی دانند که شاخص ها گم شده اند:

var fruits = fruits = "Peach" fruits = "Apple" alert(fruits.pop()) // pop "Apple" (to index 9) alert(fruits.pop()) // پاپ یک عنصر نامشخص (به فهرست 8) )

سعی کنید از آرایه های پراکنده خودداری کنید. در هر صورت، روش های آنها به طور معمول کار نخواهد کرد. به جای آن از Object استفاده کنید.

حذف از یک آرایه

همانطور که می دانیم، آرایه ها اشیا هستند، بنابراین می توانیم از delete برای حذف یک مقدار استفاده کنیم:

var arr = ["Go", "to", "home"] delete arr // now arr = ["Go", undefined, "home"] alert(arr) // تعریف نشده

می بینید که مقدار حذف شده است، اما نه به روشی که ما می خواهیم، ​​زیرا آرایه حاوی یک عنصر نامشخص است.

عملگر حذف یک جفت کلید-مقدار را حذف می کند و تمام. به طور طبیعی، از آنجایی که آرایه فقط یک هش است، موقعیت عنصر حذف شده نامشخص می شود.

اغلب ما نیاز به حذف یک عنصر بدون ایجاد "سوراخ" بین شاخص ها داریم. روش دیگری وجود دارد که در این مورد به ما کمک می کند.

روش اتصال

روش splice می تواند عناصر را حذف کرده و آنها را در آرایه های چند بعدی جاوا اسکریپت جایگزین کند. نحو آن این است:

arr.splice(index, deleteCount[, elem1, ..., elemN])

عنصر deleteCount را که از index شروع می شود حذف می کند و elem1، ...، elemN را در جای خود درج می کند.

بیایید به چند نمونه نگاه کنیم:

var arr = ["Go", "to", "home"] arr.splice(1, 1) // حذف 1 عنصر با شروع index 1 alert(arr.join(")) // ["Go" , "home"] (1 عنصر حذف شد)

بنابراین می توانید از splice برای حذف یک عنصر از یک آرایه استفاده کنید. اعداد عناصر آرایه برای پر کردن فضا جابجا می شوند:

var arr = ["Go", "to", "home"] arr.splice(0, 1) // حذف 1 عنصر، شروع از index 0 alert(arr) // "to" اولین عنصر شد

مثال زیر نحوه جایگزینی عناصر را نشان می دهد:

متد splice آرایه ای از عناصر حذف شده را برمی گرداند:

var arr = ["برو"، "به"، "خانه"، "اکنون"]; // حذف 2 عنصر اول var remove = arr.splice(0, 2) alert(removed) // "Go", "to"<-- массив удаленных элементов splice может вставлять элементы, задайте 0 для deleteCount. var arr = ["Go", "to", "home"]; // со второй позиции // удаляем 0 // и вставляем "my", "sweet" arr.splice(2, 0, "my", "sweet") alert(arr) // "Go", "to", "my", "sweet", "home"

این روش همچنین می تواند از یک شاخص منفی استفاده کند که از انتهای آرایه شمارش می شود:

var arr = // برای عنصر -1 (ماقبل آخر) // حذف 0 عنصر، // و درج 3 و 4 arr.splice(-1, 0, 3, 4) alert(arr) // 1,2,3, 4.5

وظیفه خود اداره می شود

شی حاوی یک ویژگی className است که شامل نام کلاس ها است که با فاصله از هم جدا شده اند:

var obj = (className: "open menu")

یک تابع removeClass(obj,cls) بنویسید که در صورت داده شدن کلاس cls را حذف می کند:

removeClass(obj, "open") // obj.className="menu" removeClass(obj, "blabla") // بدون تغییر (کلاسی برای حذف وجود ندارد)

راه حل

شما باید className را به قطعات تقسیم کنید و از طریق این قسمت ها حلقه بزنید. اگر مطابقت یافت شود، از آرایه اشیاء جاوا اسکریپت حذف می شود و سپس به انتها اضافه می شود.

بیایید این را کمی بهینه کنیم:

تابع removeClass(elem، cls) ( for(var c = elem.className.split(" ")، i=c.length-1; i>=0; i--) ( if (c[i] == cls ) c.splice(i,1) ) elem.className = c.join(" ") ) var obj = ( className: "open menu" ) removeClass(obj, "open") removeClass(obj, "blabla") هشدار (obj.className) // منو

در مثال بالا، متغیر c در ابتدای حلقه و i به آخرین اندیس آن تنظیم شده است.

خود حلقه در جهت مخالف اجرا می شود و با شرط i>=0 به پایان می رسد. این کار به این دلیل انجام می شود که i>=0 سریعتر از i بررسی می شود. که سرعت جستجوی خواص در c را افزایش می دهد.

روش برش

می توانید بخشی از یک آرایه را با استفاده از روش slice(begin[, end]) استخراج کنید: var arr = ["Why", "learn", "JavaScript"]; var arr2 = arr.slice(0,2) // 2 عنصر را می گیرد که از 0 هشدار شروع می شود(arr2.join(", ")) // "Why, Learn"

لطفاً توجه داشته باشید که این روش تعداد عناصر آرایه را در جاوا اسکریپت تغییر نمی دهد، بلکه بخشی از آن را کپی می کند.

شما می توانید آرگومان دوم را حذف کنید تا همه عناصر از یک شاخص خاص شروع شوند:

var arr = ["چرا"، "یادگیری"، "جاوا اسکریپت"]; var arr2 = arr.slice(1) // همه عناصر را می گیرد که از 1 هشدار شروع می شود(arr2.join("")) // "Learn, JavaScript"

این روش از شاخص های منفی پشتیبانی می کند، درست مانند String#slice.

روش معکوس

روش مفید دیگر معکوس است. فرض کنید می‌خواهم آخرین قسمت دامنه‌ای مانند " را دریافت کنم com" از جانب " my.site.com" در اینجا نحوه انجام آن آمده است:

var domain = "my.site.com" var last = domain.split(".").reverse() alert(last)

توجه داشته باشید که آرایه های جاوا اسکریپت از یک نحو پیچیده (()) برای فراخوانی یک متد و سپس بازیابی یک عنصر از آرایه به دست آمده پشتیبانی می کنند.

می توانید تماس های طولانی تری مانند reverse() ایجاد کنید 0] arr.sort() alert(arr) // 1, 15, 2

کد بالا را اجرا کنید. شما سفارش 1، 15، 2 را دریافت خواهید کرد. این به این دلیل است که این روش همه چیز را به یک رشته تبدیل می کند و به طور پیش فرض از ترتیب واژگانی استفاده می کند.