نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی

اسکریپتی برای اضافه کردن اشیا به آرایه جاوا اسکریپت. نوشتن، خواندن و اضافه کردن جزئیات آرایه

  • ترجمه

اکثر برنامه هایی که امروزه در حال توسعه هستند نیاز به تعامل با نوعی از مجموعه داده دارند. دست زدن به اقلام در مجموعه ها یک عملیات رایج است که ممکن است با آن مواجه شده باشید. به عنوان مثال، هنگام کار با آرایه ها، می توانید بدون تردید از حلقه for معمول استفاده کنید که چیزی شبیه به این است: for (var i = 0; i< value.length; i++){} . Однако, лучше, всё-таки, смотреть на вещи шире.

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

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

لازم به ذکر است که مروری بر رویکردهای مدرن توسعه در JS معمولاً شامل نمونه هایی است که با استفاده از توابع فلش تهیه شده است. شاید شما اغلب از آنها استفاده نمی کنید - شاید به این دلیل که آنها را دوست ندارید، شاید به این دلیل که نمی خواهید زمان زیادی را صرف یادگیری چیزهای جدید کنید، یا شاید آنها فقط برای شما کار نمی کنند. بنابراین، در اینجا، در اکثر موقعیت ها، دو گزینه برای انجام اقدامات مشابه نشان داده می شود: استفاده از توابع معمولی (ES5) و استفاده از توابع فلش (ES6). برای کسانی که تازه وارد توابع پیکان شده اند، توجه داشته باشید که توابع پیکان معادل اعلان تابع و عبارات تابع نیستند. ارزش جایگزینی یکی با دیگری را ندارد. به طور خاص، این به این دلیل است که کلمه کلیدی this در توابع معمولی و پیکانی رفتار متفاوتی دارد.

1. اپراتور توسعه

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

▍ نقاط قوت اپراتور Spread

  • این یک راه ساده و سریع برای "کشیدن" عناصر فردی آن از یک آرایه است.
  • این عملگر برای کار با آرایه و لفظ شی مناسب است.
  • این یک روش سریع و شهودی برای کار با آرگومان های تابع است.
  • عملگر spread فضای زیادی را در کد اشغال نمی کند - به نظر می رسد سه نقطه (...).

▍ مثال

فرض کنید وظیفه دارید غذاهای مورد علاقه خود را بدون استفاده از حلقه فهرست کنید. با عملگر spread، این کار به صورت زیر انجام می شود:

2. حلقه for…

دستور for… of برای عبور از اشیاء تکرارپذیر در نظر گرفته شده است. به عناصر منفرد چنین اشیایی (به ویژه به عناصر آرایه ها) دسترسی می دهد، که به عنوان مثال، امکان تغییر آنها را فراهم می کند. می توان آن را جایگزینی برای حلقه for معمولی در نظر گرفت.

▍نقاط قوت حلقه for…

  • این یک راه آسان برای افزودن یا به‌روزرسانی موارد مجموعه است.
  • حلقه for… به شما امکان می دهد محاسبات مختلفی را با استفاده از عناصر (جمع، ضرب و غیره) انجام دهید.
  • هنگامی که نیاز به بررسی هر شرایطی دارید، استفاده از آن راحت است.
  • استفاده از آن منجر به کدهای تمیزتر و خواناتر می شود.

▍ مثال

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

3. روش شامل ()

روش شامل () برای بررسی وجود یک عنصر خاص در مجموعه، به ویژه، به عنوان مثال، یک رشته خاص در یک آرایه حاوی رشته ها استفاده می شود. این روش بسته به نتایج بررسی، true یا false را برمی گرداند. هنگام استفاده از آن باید در نظر داشت که به حروف کوچک و بزرگ حساس است. برای مثال، اگر مجموعه دارای یک عنصر رشته مدرسه باشد و بررسی وجود آن با استفاده از () روی رشته مدرسه انجام شود، متد false را برمی‌گرداند.

▍ نقاط قوت روش شامل ().

  • روش شامل () برای ایجاد مکانیسم‌های ساده بازیابی داده مفید است.
  • این به توسعه دهنده یک راه بصری برای تعیین اینکه آیا برخی از داده ها در یک آرایه هستند، می دهد.
  • استفاده از آن در عبارات شرطی برای اصلاح، فیلتر کردن عناصر و انجام سایر عملیات راحت است.
  • استفاده از آن منجر به بهبود خوانایی کد می شود.

▍ مثال

فرض کنید یک گاراژ دارید که با آرایه ای با لیستی از ماشین ها نشان داده شده است و نمی دانید که آیا ماشین خاصی در این گاراژ وجود دارد یا خیر. برای حل این مشکل، باید کدی بنویسید که به شما امکان می دهد وجود خودرو را در گاراژ بررسی کنید. بیایید از روش شامل () استفاده کنیم:

4. روش some ().

متد some () به شما امکان می دهد بررسی کنید که آیا برخی از عناصر مورد نظر شما در آرایه وجود دارند یا خیر. بر اساس نتایج بررسی، true یا false را برمی گرداند. این شبیه به متد include () در بالا است، با این تفاوت که آرگومان آن یک تابع است و به عنوان مثال، یک رشته معمولی نیست.

▍برخی نقاط قوت روش ().

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

▍ مثال

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

ES5

ES6

5. روش هر ().

هر متد () از میان آرایه عبور می‌کند و هر یک از عناصر آن را در برابر یک شرط خاص بررسی می‌کند، اگر همه عناصر آرایه شرایط را داشته باشند true و در غیر این صورت false را برمی‌گرداند. متوجه خواهید شد که شبیه متد some () است.

▍ نقاط قوت هر () روش

  • متد every () به شما امکان می دهد بررسی کنید که آیا تمام عناصر یک آرایه با یک شرط مطابقت دارند یا خیر.
  • شرایط را می توان با استفاده از توابع تنظیم کرد.
  • این یک رویکرد برنامه نویسی اعلامی را ترویج می کند.

▍ مثال

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

ES5

ES6

6. روش فیلتر ().

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

▍ روش نقاط قوت فیلتر ().

  • روش فیلتر () از اصلاح آرایه اصلی جلوگیری می کند.
  • این به شما امکان می دهد از شر عناصر غیر ضروری خلاص شوید.
  • خوانایی کد شما را بهبود می بخشد.

▍ مثال

فرض کنید باید از لیست قیمت ها فقط قیمت هایی را انتخاب کنید که بزرگتر یا مساوی 30 هستند. بیایید از روش فیلتر () برای حل این مشکل استفاده کنیم.

ES5

ES6

7. روش نقشه ()

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

▍نقاط قوت روش نقشه ().

  • روش map () از نیاز به اصلاح عناصر آرایه اصلی جلوگیری می کند.
  • اصلاح عناصر آرایه با کمک آن راحت است.
  • خوانایی کد شما را بهبود می بخشد.

▍ مثال

فرض کنید لیستی از محصولات با قیمت دارید. مدیر شما به لیست جدیدی از محصولات با قیمت 25% کاهش یافته نیاز دارد. بیایید از روش نقشه () برای حل این مشکل استفاده کنیم.

ES5

ES6

8. روش کاهش ()

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

▍نقاط قوت روش کاهش ()

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

▍ مثال

فرض کنید باید هزینه های هفته خود را که در یک آرایه ذخیره می شود محاسبه کنید. بیایید این مشکل را با استفاده از روش کاهش () حل کنیم.

ES5

ES6

افزودن برچسب

آرایه ها

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

شاخص‌های آرایه در جاوا اسکریپت مبتنی بر صفر هستند و از اعداد صحیح 32 بیتی استفاده می‌کنند — اولین عنصر آرایه دارای شاخص 0 است. آرایه‌های جاوا اسکریپت پویا هستند: می‌توانند در صورت نیاز رشد کرده و کوچک شوند. نیازی به اعلام اندازه ثابت آرایه ها هنگام ایجاد آنها یا تخصیص مجدد حافظه در هنگام تغییر اندازه وجود ندارد.

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

ایجاد آرایه ها

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

وار خالی =; // اعداد var آرایه خالی =; // آرایه با پنج عنصر عددی var misc = [1.1، true، "a"]; // 3 عنصر از انواع مختلف + کاما انتهایی var base = 1024; جدول var =; // آرایه با متغیرها var arrObj = [,]; // 2 آرایه در داخل حاوی اشیاء

نحو تحت اللفظی آرایه به شما این امکان را می دهد که یک کاما انتهایی اختیاری را وارد کنید. [،] تحت اللفظی آرایه ای را با دو عنصر، نه سه عنصر، مطابقت می دهد.

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

    سازنده را بدون آرگومان فراخوانی کنید:

    Var arr = آرایه جدید ();

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

    سازنده را با یک آرگومان عددی واحد که طول آرایه را مشخص می کند فراخوانی کنید:

    Var arr = آرایه جدید (10);

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

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

    Var arr = آرایه جدید (5، 4، 3، 2، 1، "تست")؛

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

خواندن و نوشتن عناصر آرایه

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

// ایجاد یک آرایه با یک عنصر var arr = ["world"]; // خواندن آیتم 0 var value = arr; // مقدار عنصر 1 را بنویسید arr = 3.14; // برای عنصر 2 مقدار بنویسید i = 2; arr [i] = 3; // یک مقدار برای عنصر 3 بنویسید arr = "hello"; // آیتم های 0 و 2 را بخوانید، مقدار مورد 3 را بنویسید arr] = arr;

اجازه دهید به شما یادآوری کنم که آرایه ها نوعی شیء تخصصی هستند. براکت‌های مربعی که برای دسترسی به عناصر آرایه استفاده می‌شوند دقیقاً مانند براکت‌های مربعی که برای دسترسی به ویژگی‌های یک شی استفاده می‌شوند عمل می‌کنند. مفسر جاوا اسکریپت شاخص های عددی داخل پرانتز را به رشته تبدیل می کند - شاخص 1 تبدیل به رشته "1" می شود - و سپس از رشته ها به عنوان نام ویژگی استفاده می کند.

هیچ چیز خاصی در مورد تبدیل شاخص های عددی به رشته وجود ندارد: همین کار را می توان با اشیاء معمولی انجام داد:

Var obj = (); // ایجاد یک شی ساده obj = "one"; // آن را با اعداد صحیح نمایه کنید

ویژگی آرایه ها این است که هنگام استفاده از نام ویژگی هایی که اعداد صحیح غیر منفی هستند، آرایه ها به طور خودکار مقدار ویژگی را تعیین می کنند. طول... به عنوان مثال، آرایه arr بالا با یک عنصر ایجاد شده است. سپس مقادیری به عناصر آن با اندیس های 1 و 2 و 3 نسبت داده شد که در نتیجه این عملیات مقدار ویژگی length آرایه تغییر کرد و برابر با 4 شد.

شما باید به وضوح بین شاخص های یک آرایه و نام ویژگی های شی تمایز قائل شوید. همه ایندکس‌ها نام ویژگی‌ها هستند، اما فقط ویژگی‌هایی با نام‌های صحیح اندیس هستند. همه آرایه ها شی هستند و شما می توانید با هر نامی به آنها ویژگی ها اضافه کنید. با این حال، اگر روی ویژگی‌هایی که شاخص‌های آرایه هستند تأثیر می‌گذارید، آرایه‌ها با به‌روزرسانی مقدار ویژگی length در صورت نیاز واکنش نشان می‌دهند.

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

افزودن و حذف عناصر آرایه

قبلاً دیده‌ایم که ساده‌ترین راه برای افزودن عناصر به آرایه، تخصیص مقادیر به شاخص‌های جدید است. همچنین می توانید از این روش برای اضافه کردن یک یا چند عنصر به انتهای یک آرایه استفاده کنید فشار دادن ():

Var arr =; // ایجاد یک آرایه خالی arr.push ("صفر"); // یک مقدار به انتهای arr.push اضافه کنید ("one", 2); // دو مقدار دیگر اضافه کنید

همچنین می توانید با اختصاص یک مقدار به عنصر arr، یک عنصر را به انتهای یک آرایه اضافه کنید. برای درج یک عنصر در ابتدای یک آرایه، می توانید از روش استفاده کنید بدون تغییر ()و عناصر موجود در آرایه به شاخص های بالاتر منتقل می شوند.

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

Var arr =; حذف arr 2 در arr; // false، index 2 در آرایه تعریف نشده است arr.length; // 3: عملگر delete ویژگی length آرایه را تغییر نمی دهد

حذف یک عنصر مشابه (اما کمی متفاوت است) با اختصاص یک مقدار تعریف نشده به آن عنصر. توجه داشته باشید که اعمال عملگر حذف بر روی یک عنصر در یک آرایه، مقدار ویژگی length را تغییر نمی‌دهد، و همچنین عناصر با شاخص‌های بالاتر را به سمت پایین حرکت نمی‌دهد تا فضای خالی باقی مانده پس از حذف عنصر را پر کند.

علاوه بر این، حذف عناصر در انتهای یک آرایه به سادگی با اختصاص یک مقدار جدید به ویژگی length امکان پذیر است. آرایه ها روشی دارند ترکیدن ()(مخالف با روش فشار ())، که طول آرایه را 1 کاهش می دهد و مقدار عنصر حذف شده را برمی گرداند. یک روش هم وجود دارد تغییر مکان ()(برعکس unshift ())، که عنصر ابتدای آرایه را حذف می کند. بر خلاف عملگر حذف، روش shift () همه عناصر را یک موقعیت پایین تر از شاخص های فعلی شان جابه جا می کند.

در نهایت یک روش چند منظوره وجود دارد اتصال ()، که به شما امکان می دهد عناصر آرایه ها را درج، حذف و جایگزین کنید. مقدار ویژگی length را تغییر می‌دهد و عناصر آرایه را در صورت نیاز با شاخص‌های پایین‌تر یا بالاتر جابه‌جا می‌کند. در مورد همه این روش ها کمی بعد صحبت خواهیم کرد.

آرایه های چند بعدی

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

به عنوان مثال، فرض کنید ماتریس متغیر آرایه ای از آرایه های اعداد است. هر عنصر ماتریس [x] آرایه ای از اعداد است. می توانید از ماتریس عبارت [x] [y] برای دسترسی به یک عدد خاص در یک آرایه استفاده کنید. در زیر یک مثال خاص وجود دارد که در آن یک آرایه دو بعدی به عنوان جدول ضرب استفاده می شود:

// ایجاد یک آرایه چند بعدی var table = new Array (10); // 10 ردیف در جدول برای (var i = 0; i

روش های کلاس آرایه

استاندارد ECMAScript 3 بسیاری از توابع راحت را برای کار با آرایه ها به عنوان بخشی از Array.prototype تعریف می کند که به عنوان روش های هر آرایه در دسترس هستند. این روش ها در زیر بخش های زیر ارائه خواهند شد.

روش Join ()

متد Array.join () تمام عناصر آرایه را به رشته تبدیل می کند، آنها را به هم متصل می کند و رشته حاصل را برمی گرداند. یک آرگومان اختیاری را می توان با رشته ای به متد ارسال کرد که برای جداسازی عناصر در رشته نتیجه استفاده می شود. اگر رشته جداکننده مشخص نشده باشد، از کاما استفاده می شود. به عنوان مثال، قطعه زیر منجر به رشته "1،2،3" می شود:

Var arr =; arr.join (); // "1،2،3" arr.join ("-"); // "1-2-3"

روش معکوس ()

متد Array.reverse () ترتیب عناصر یک آرایه را معکوس می کند و یک آرایه مرتب شده مجدد را برمی گرداند. جایگشت مستقیماً روی آرایه اصلی انجام می شود، یعنی. این روش یک آرایه جدید با عناصر مرتب شده ایجاد نمی کند، بلکه آنها را در یک آرایه موجود دوباره مرتب می کند. به عنوان مثال، قطعه زیر که از متدهای reverse () و join () استفاده می کند، منجر به رشته "3،2،1" می شود:

Var arr =; arr.reverse () join (); // "3،2،1"

روش مرتب سازی ()

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

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

Var arr =; arr.sort (); // ترتیب حروف الفبا: 1111, 222, 33, 4 arr.sort (تابع (a, b) (// ترتیب عددی: 4, 33, 222, 1111 ab; // مقدار 0 // را بسته به مرتب سازی برمی گرداند. دستور الف و ب))؛ // مرتب سازی به عقب، از بالاترین به پایین ترین arr.sort (function (a, b) (return b-a));

توجه کنید که استفاده از یک تابع بدون نام در این قطعه چقدر راحت است. تابع مقایسه فقط در اینجا استفاده می شود، بنابراین نیازی به ذکر نام نیست.

روش concat ().

متد Array.concat () یک آرایه جدید حاوی عناصر آرایه اصلی که متد concat () بر روی آن فراخوانی شده و مقادیر هر آرگومان به متد concat () ارسال می‌شود، ایجاد و برمی‌گرداند. اگر هر یک از این آرگومان ها خودشان یک آرایه باشند، عناصر آن به آرایه برگشتی اضافه می شوند. البته باید توجه داشت که هیچ تبدیل بازگشتی یک آرایه از آرایه به آرایه یک بعدی وجود ندارد. متد concat () آرایه اصلی را تغییر نمی دهد. در زیر چند نمونه آورده شده است:

Var arr =; arr.concat (4، 5); // arr.concat (); // برمی‌گرداند arr.concat (،) // برمی‌گرداند arr.concat (4،]) // برمی‌گرداند]

روش Slice ().

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

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

Var arr =; arr.slice (0.3); // arr.slice (3) را برمی گرداند. // arr.slice (1, -1) را برمی گرداند. // arr.slice (-3، -2) را برمی گرداند. // بر خواهد گشت

روش Splice ().

متد Array.splice () یک روش عمومی است که عناصر یک آرایه را درج یا حذف می کند. برخلاف متدهای slice () و concat ()، متد splice () آرایه اصلی را که بر روی آن فراخوانی شده بود تغییر می‌دهد. توجه داشته باشید که متدهای splice () و slice () نام های بسیار مشابهی دارند اما عملیات کاملاً متفاوتی را انجام می دهند.

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

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

دو آرگومان اول متد splice () عناصر آرایه را مشخص می کند که باید حذف شوند. این آرگومان‌ها را می‌توان با هر تعداد آرگومان اضافی دنبال کرد که عناصری را که باید در آرایه درج شوند، مشخص می‌کنند و از موقعیت مشخص‌شده در آرگومان اول شروع می‌شوند.

Var arr =; arr.splice (4); // برمی گرداند arr = arr.splice (1,2); // برمی‌گرداند arr = arr.splice (1,1); // بر خواهد گشت؛ arr = arr =; arr.splice (2,0، "a"، "b"); // بر خواهد گشت؛ arr =

متدهای push () و pop ().

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

متدهای unshift () و shift ().

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

  • ترجمه
  • I. تکرار روی آرایه های واقعی
    1. ForEach Method و روش های مرتبط
    2. برای حلقه
    3. استفاده صحیح از for ... در حلقه
    4. برای ... از حلقه (استفاده ضمنی از یک تکرار کننده)
    5. استفاده صریح از تکرار کننده
    1. استفاده از روش‌هایی برای تکرار روی آرایه‌های واقعی
    2. تبدیل به یک آرایه واقعی
    3. یادداشتی در مورد اشیاء زمان اجرا

I. تکرار روی آرایه های واقعی

در حال حاضر، سه راه برای تکرار روی عناصر یک آرایه واقعی وجود دارد:
  1. روش Array.prototype.forEach;
  2. کلاسیک برای حلقه;
  3. یک "خوب شکل گرفته" برای ... در حلقه.
علاوه بر این، به زودی، با ظهور استاندارد جدید ECMAScript 6 (ES 6)، دو راه دیگر پیش بینی می شود:
  1. برای ... از حلقه (استفاده ضمنی از یک تکرار);
  2. استفاده صریح از تکرار کننده

1. متد forEach و متدهای مرتبط

اگر پروژه شما برای پشتیبانی از قابلیت های استاندارد ECMAScript 5 (ES5) طراحی شده است، می توانید از یکی از نوآوری های آن استفاده کنید - روش forEach.

مثال استفاده:
var a = ["a"، "b"، "c"]; a.forEach (تابع (ورودی) (console.log (ورود));
به طور کلی، استفاده از forEach مستلزم اتصال کتابخانه شبیه‌سازی es5-shim برای مرورگرهایی است که از این روش پشتیبانی نمی‌کنند. اینها شامل IE 8 و نسخه های قبلی است که هنوز هم استفاده می شود.

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

اگر نگران هزینه بالقوه تماس برگشتی برای هر مورد هستید، نگران نباشید و این را بخوانید.

ForEach برای تکرار بر روی تمام عناصر یک آرایه طراحی شده است، اما جدا از آن، ES5 چندین روش مفید دیگر را برای تکرار روی همه یا برخی از عناصر، به علاوه انجام برخی اقدامات با آنها ارائه می دهد:

  • هر - اگر برای هر عنصر آرایه، callback مقداری را برمی گرداند که به true داده می شود، true را برمی گرداند.
  • some - اگر حداقل برای یک عنصر از آرایه، callback مقداری را برمی گرداند که به true داده می شود، true را برمی گرداند.
  • فیلتر - یک آرایه جدید ایجاد می کند که شامل آن دسته از عناصر آرایه اصلی است که برای آنها callback true برمی گرداند.
  • نقشه - یک آرایه جدید متشکل از مقادیر بازگردانده شده توسط callback ایجاد می کند.
  • کاهش - یک آرایه را به یک مقدار واحد کاهش می دهد، به نوبه خود برای هر عنصر آرایه، یک بازخوانی اعمال می کند، که از اول شروع می شود (می تواند برای محاسبه مجموع عناصر آرایه و سایر توابع نهایی مفید باشد).
  • reduceRight - شبیه به کاهش کار می کند، اما روی عناصر به ترتیب معکوس تکرار می شود.

2. حلقه for

خوب قدیمی برای قوانین:

Var a = ["a"، "b"، "c"]; شاخص var; برای (شاخص = 0؛ شاخص< a.length; ++index) { console.log(a); }
اگر طول آرایه در کل حلقه بدون تغییر باقی بماند، و خود حلقه به یک قطعه کد حیاتی برای عملکرد تعلق دارد (که بعید است)، می‌توانید از نسخه «بهینه‌تر» for برای ذخیره‌سازی طول استفاده کنید. آرایه:

Var a = ["a"، "b"، "c"]; var index, len; برای (index = 0, len = a.length; index< len; ++index) { console.log(a); }
در تئوری، این کد باید کمی سریعتر از کد قبلی اجرا شود.

اگر ترتیب تکرار مهم نیست، می‌توانید از نظر بهینه‌سازی حتی فراتر رفته و با تغییر ترتیب تکرار به خلاف، از شر متغیر ذخیره طول آرایه خلاص شوید:

Var a = ["a"، "b"، "c"]; شاخص var; برای (index = a.length - 1; index> = 0; --index) (console.log (a);)
با این حال، در موتورهای جاوا اسکریپت مدرن، این بازی های بهینه شده معمولاً هیچ معنایی ندارند.

3. استفاده صحیح از for ... در حلقه

اگر به شما توصیه می شود از یک for ... در حلقه استفاده کنید، به یاد داشته باشید که تکرار روی آرایه ها چیزی نیست که برای آن در نظر گرفته شده است. برخلاف تصور غلط رایج، حلقه for ... در روی شاخص‌های آرایه تکرار نمی‌شود، بلکه ویژگی‌های برشماری شیء را تکرار می‌کند.

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

// a یک آرایه پراکنده است var a =; a = "a"; a = "b"؛ a = "c"; برای (کلید var در a) (اگر (a.hasOwnProperty (کلید) && /^0$|^\d*$/.test(کلید) && کلید<= 4294967294) { console.log(a); } }
در این مثال، در هر تکرار از حلقه، دو بررسی انجام می شود:

  1. که آرایه دارای ویژگی خاص خود به نام key است (از نمونه اولیه آن به ارث برده نشده است).
  2. آن کلید رشته ای است حاوی نماد اعشاری یک عدد صحیح که مقدار آن کمتر از 4294967294 است. آخرین عدد از کجا می آید؟ از تعریف شاخص آرایه در ES5، که به این معنی است که بزرگترین شاخصی که یک عنصر در یک آرایه می تواند داشته باشد (2 ^ 32 - 2) = 4294967294 است.
البته چنین بررسی هایی هنگام اجرای حلقه زمان بیشتری را می گیرد. اما در مورد یک آرایه پراکنده، این روش کارآمدتر از یک حلقه for است، زیرا در این حالت فقط آن دسته از عناصری که به صراحت در آرایه تعریف شده اند تکرار می شوند. بنابراین، در مثال بالا، تنها 3 تکرار (برای شاخص های 0، 10 و 10000) انجام می شود - در مقابل 10001 در حلقه for.

برای اینکه هر بار که نیاز به تکرار روی یک آرایه دارید، چنین کد دست و پا گیر بررسی ننویسید، می توانید آن را به عنوان یک تابع جداگانه طراحی کنید:

تابع arrayHasOwnIndex (آرایه، کلید) (بازگرداندن array.hasOwnProperty (کلید) && /^0$|^\d*$/.test(کلید) && کلید<= 4294967294; }
سپس بدنه حلقه از مثال به طور قابل توجهی کاهش می یابد:

برای (کلید در a) (if (arrayHasOwnIndex (a، کلید)) (console.log (a);))
کد چک فوق جهانی است و برای همه موارد مناسب است. اما در عوض، می‌توانید از یک نسخه کوتاه‌تر استفاده کنید، اگرچه به طور رسمی کاملاً صحیح نیست، اما با این وجود برای اکثر موارد مناسب است:

برای (کلید در a) (اگر (a.hasOwnProperty (کلید) && String (parseInt (کلید، 10)) === کلید) (console.log (a);))

4. حلقه for ... (استفاده ضمنی از یک تکرار کننده)

ES6، در حالی که هنوز در وضعیت پیش نویس است، باید تکرار کننده ها را به جاوا اسکریپت وارد کند.

یک تکرار کننده یک پروتکل پیاده سازی شده توسط شی است که یک روش استاندارد برای به دست آوردن دنباله ای از مقادیر (محدود یا بی نهایت) را تعریف می کند.
تکرار کننده شی ای است که در آن متد () بعدی تعریف می شود - تابعی بدون آرگومان که یک شی را با دو ویژگی برمی گرداند:

  1. انجام شده (بولی) - درست است اگر تکرار کننده به پایان دنباله در حال تکرار رسیده باشد. در غیر این صورت، دروغ است.
  2. مقدار - مقدار بازگردانده شده توسط تکرار کننده را مشخص می کند. اگر ویژگی انجام شده درست باشد، ممکن است تعریف نشده (غایب) باشد.
بسیاری از اشیاء داخلی، از جمله. آرایه های واقعی دارای تکرار کننده های پیش فرض هستند. ساده‌ترین راه برای استفاده از تکرارکننده در آرایه‌های واقعی، استفاده از جدید برای ... ساختار است.

نمونه ای از استفاده برای ... از:

Var val; var a = ["a"، "b"، "c"]; برای (val of a) (console.log (val);)
در مثال بالا، حلقه for ... به طور ضمنی تکرار کننده شی Array را برای بدست آوردن هر مقدار در آرایه فراخوانی می کند.

5. استفاده صریح از تکرار کننده

تکرار کننده ها نیز می توانند به طور صریح استفاده شوند، با این حال، در این مورد کد در مقایسه با حلقه for ... بسیار پیچیده تر می شود. به نظر می رسد این است:

Var a = ["a"، "b"، "c"]; var it = a.entries (); ورود var; while (! (entry = it.next ()). انجام شد) (console.log (entry.value);)
در این مثال، روش Array.prototype.entries یک تکرار کننده را برمی گرداند که برای نمایش مقادیر آرایه استفاده می شود. در هر تکرار، entry.value حاوی آرایه ای به شکل [key, value] است.

II. تکرار بر روی اشیاء آرایه مانند

جاوا اسکریپت علاوه بر آرایه های واقعی، شامل اشیاء آرایه مانند ... وجه اشتراک آنها با آرایه های واقعی این است که دارای ویژگی طول و ویژگی هایی با نام هایی به شکل اعداد مربوط به عناصر آرایه هستند. به عنوان مثال می توان به DOM مجموعه NodeList و آرایه های شبه آرگومان های موجود در هر تابع/متد اشاره کرد.

1. استفاده از روش های تکرار روی آرایه های واقعی

حداقل بیشتر، اگر نه همه، روش‌های تکرار روی آرایه‌های واقعی می‌توانند برای تکرار روی اشیاء آرایه‌مانند استفاده شوند.

for و for ... در ساختارها را می توان دقیقاً به همان روشی که برای آرایه های واقعی به اشیاء آرایه مانند اعمال کرد.

روش های ForEach و دیگر Array.prototype نیز برای اشیاء آرایه مانند اعمال می شود. برای انجام این کار، باید از یک تماس با Function.call یا Function.apply استفاده کنید.

به عنوان مثال، اگر می خواهید forEach را به ویژگی childNodes یک شی Node اعمال کنید، می توانید این کار را به صورت زیر انجام دهید:

Array.prototype.forEach.call (node.childNodes، تابع (فرزند) (// انجام کاری با شی فرزند));
برای سهولت استفاده مجدد از این تکنیک، می‌توانید ارجاع به متد Array.prototype.forEach را در یک متغیر جداگانه اعلام کنید و از آن به عنوان مختصر استفاده کنید:

// (با فرض این که تمام کدهای زیر در یک محدوده قرار دارند) var forEach = Array.prototype.forEach; // ... forEach.call (node.childNodes، تابع (فرزند) (// انجام کاری با شی فرزند));
اگر یک شی آرایه مانند دارای یک تکرارکننده باشد، می توان از آن به طور صریح یا ضمنی برای تکرار روی شی به همان روشی که برای آرایه های واقعی استفاده می شود استفاده کرد.

2. تبدیل به یک آرایه واقعی

همچنین یک راه بسیار ساده دیگر برای تکرار روی یک شی آرایه مانند وجود دارد: تبدیل آن به یک آرایه واقعی و استفاده از هر یک از روش های بالا برای تکرار روی آرایه های واقعی. برای تبدیل، می توانید از روش عمومی Array.prototype.slice استفاده کنید، که می تواند برای هر شی آرایه مانند اعمال شود. این کار بسیار ساده انجام می شود، همانطور که در مثال زیر نشان داده شده است:

Var trueArray = Array.prototype.slice.call (arrayLikeObject, 0);
به عنوان مثال، اگر می خواهید یک مجموعه NodeList را به یک آرایه واقعی تبدیل کنید، به کدی مانند زیر نیاز دارید:

Var divs = Array.prototype.slice.call (document.querySelectorAll ("div")، 0);
به روز رسانی: همانطور که در نظرات ذکر شده است

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

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

1. افزودن ویژگی های سفارشی به آرایه ها

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

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

2. دسترسی به عناصر آرایه در یک حلقه

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

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

حلقه for ... برای تکرار روی عناصر یک آرایه بدون تأثیر بر شاخص عنصر طراحی شده است.

Var ary = ["پرتقال"، "سیب"، "لیچی"]; برای (اجازه دهید آیتم ary) (console.log (مورد)؛) // "orange"، "apple"، "lychee" برای مقایسه: نمایش شاخص های آیتم ها در یک حلقه for. var ary = ["پرتقال"، "سیب"، "لیچی"]; برای (var item = 0; item< ary.length; item++){ console.log(item); } // 0, 1, 2

3. تعداد عناصر بعد آرایه نیست

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

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

واراری =; ary.length = 3; console.log (ary.length); // 3 ary = "abcd"; console.log (ary.length); // 6

در مثال آخر کافی بود که عنصر را در موقعیت پنجم قرار دهیم که در نتیجه طول آرایه برابر با 6 شد. اشتباه. این را می توان با استفاده از عملگر in تأیید کرد.

واراری =; ary.length = 3; console.log (ary.length); // 3 ary = "abcd"; console.log (ary.length); // 6 console.log (0 در ary); // نادرست

در این مورد، منصفانه خواهد بود که آرایه را "sparse" بنامیم.

همچنین می‌توانیم ویژگی length را برای برش آرایه‌ها دستکاری کنیم. مثال زیر "از دست دادن" عنصر در اندیس 5 را با کاهش مقدار ویژگی length آرایه ary نشان می دهد.

واراری =; ary.length = 3; console.log (ary.length); // 3 ary = "abcd"; console.log (ary.length); // 6 ary.length = 2; console.log (ary.length); // 2 console.log (ary); // تعریف نشده

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

مفهوم آرایه

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

شکل زیر یک آرایه عددی با 7 عنصر را نشان می دهد. عناصر این آرایه حاوی داده های زیر است: 1 عنصر (0 شاخص) - شماره 123، 2 عنصر (1 شاخص) - شماره 214، 3 عنصر (2 شاخص) - شماره 315 و غیره.

// عنصری که آرایه را در آن خروجی خواهیم داد

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

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

  • عدد. در این صورت این تابع آرایه ای از تعداد مشخص شده عناصر ایجاد می کند. همه این عناصر دارای مقادیر نامشخصی خواهند بود.
  • چندین مقدار که با کاما از هم جدا شده اند. در این حالت تابع سازنده Array آرایه ای از تعداد مشخص شده عناصر ایجاد می کند و مقادیر مناسب را به آنها اختصاص می دهد.
  • هیچ چیزی. در این صورت این تابع یک آرایه خالی ایجاد می کند.

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

کار با عناصر آرایه

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

به عنوان مثال، بیایید یک آرایه خالی ایجاد کنیم و 4 عنصر متنی را به آن اضافه کنیم:

// ایجاد یک آرایه خالی اسمارتفونColors var smartphoneColors = آرایه جدید (); // به 1 عنصر آرایه (شاخص 0) مقدار "Black" را اختصاص دهید گوشی هوشمندColors = "Black"; // به عنصر دوم آرایه (شاخص 1) مقدار "White" را اختصاص دهید. // 3 عنصر آرایه (شاخص 2) را به مقدار "Gray" اختصاص دهید گوشی هوشمندColors = "Gray"; // به عنصر چهارم آرایه (شاخص 3) مقدار "Blue" را اختصاص می دهد گوشی هوشمندColors = "Blue";

به عنوان مثال، بیایید مقادیر 2 و 4 آرایه ColorColors را در کنسول مرورگر (F12) چاپ کنیم:

Console.log ("2 عنصر =" + رنگ های هوشمند؛ console.log ("4th عنصر =" + SmartphoneColors);

طول آرایه (تعداد عناصر موجود در آرایه)

تعداد عناصر یک آرایه با استفاده از ویژگی 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 = آرایه جدید ("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 شامل متدهای زیر برای کار با عناصر آرایه است: pop ()، فشار ()، shift ()، unshift ()، slice ()، splice ()، join ()، تقسیم ()، معکوس ()، مرتب سازی. ()...

حذف آخرین عنصر آرایه - pop

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

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

اضافه کردن یک عنصر به انتهای یک آرایه - فشار

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

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

حذف اولین عنصر یک آرایه - shift

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

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

اضافه کردن یک عنصر به ابتدای یک آرایه - unshift

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

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

کپی کردن عناصر آرایه - برش

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

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

  • 1 پارامتر (الزامی) - برای نشان دادن شاخص عنصری که از آن شروع به کپی کردن عناصر می شود استفاده می شود.
  • 2 پارامتر (اختیاری) - برای نشان دادن شاخص عنصری که می خواهید در آن کپی کنید استفاده می شود. اگر آن را مشخص نکنید، عناصر انتهای آرایه مشخص شده کپی می شوند.
var namePlanets = آرایه جدید ("زهره"، "عطارد"، "زمین"، "مریخ")؛ namePlanets = namePlanets.slice (2،3); console.log ("تعداد عناصر در آرایه:" + namePlanets.length); برای (var i = 0; i<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

افزودن و / یا حذف عناصر - اتصال

روش اسپلایس برای افزودن و/یا حذف عناصر آرایه است.

1. روش splice به شما امکان می دهد برخی از عناصر آن را از یک آرایه برش دهید، i.e. آنها از آرایه حذف خواهند شد:

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

2. روش splice همچنین به شما امکان می دهد (اگر پارامتر 2 0 باشد) عناصر را به آرایه اضافه کنید یا همزمان عناصر آرایه را اضافه و حذف کنید (اگر پارامتر 2 بزرگتر از 0 باشد).

این روش دارای 3 پارامتر است:

  • 1 پارامتر (الزامی) - در نظر گرفته شده برای نشان دادن شاخص عنصری که از آن شروع به برش عناصر می کنیم.
  • پارامتر 2 (الزامی) - برای تعیین تعداد عناصری که باید برش داده شوند در نظر گرفته شده است.
  • 3 و پارامترهای بعدی (اختیاری) - برای افزودن عناصر به آرایه در نظر گرفته شده است.
var namePlanets = آرایه جدید ("زهره"، "عطارد"، "زمین"، "مریخ")؛ namePlanets.splice (1،1، "اورانوس"، "نپتون"، "زحل")؛ console.log ("تعداد عناصر در آرایه:" + namePlanets.length); برای (var i = 0; i<= namePlanets.length-1; i++) { console.log(i + " элемент массива = " + namePlanets[i]); }

تبدیل آرایه به رشته - پیوستن

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

Var namePlanets = آرایه جدید ("زهره"، "عطارد"، "زمین"، "مریخ")؛ var strPlanets = namePlanets.join (); console.log ("Line:" + strPlanets); var strPlanets2 = namePlanets.join (""); console.log ("Line:" + strPlanets2);

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

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

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]); }

مقالات مرتبط برتر