متدهای پیمایش آرایه در جاوااسکریپت

از ویکی کد
پرش به ناوبری پرش به جستجو
دورهٔ آموزشی جاوااسکریپت
Javascript.jpg
جاوااسکریپت
موارد آموزشی
۱آموزش جاوااسکریپت
۲مقدمه‌ای بر جاوااسکریپت
۳قوانین و اصول اولیه زبان جاوااسکریپت
۴خروجی جاوااسکریپت
۵عبارت‌ها در جاوااسکریپت
۶شیوهٔ نوشتن دستورات در جاوااسکریپت
۷نظرات یا کامنت‌ها (Comments) در جاوااسکریپت
۸متغیرها در جاوااسکریپت
۹عملگرهای جاوااسکریپت
۱۰عملگرهای ریاضی در جاوااسکریپت
۱۱عملگرهای مقداردهی در جاوااسکریپت
۱۲انواع داده‌ها در جاوااسکریپت
۱۳توابع در جاوااسکریپت
۱۴اشیاء (object) در جاوااسکریپت
۱۵رویدادها در جاوااسکریپت
۱۶رشته‌های متنی (string) در جاوااسکریپت
۱۷متدهای نوع داده متنی یا رشته‌ای در جاوااسکریپت
۱۸اعداد در جاوااسکریپت
۱۹متدهای داده‌های عددی در جاوااسکریپت
۲۰آرایه‌ها در جاوااسکریپت
۲۱متدهای آرایه در جاوااسکریپت
۲۲مرتب‌سازی آرایه‌ها در جاوااسکریپت
۲۳متدهای پیمایش آرایه در جاوااسکریپت
۲۴اشیاء تاریخ و زمان در جاوااسکریپت
۲۵فرمت‌های تاریخ و زمان در جاوااسکریپت
۲۶متدهای دریافت تاریخ و زمان در جاوااسکریپت
۲۷متدهای تنظیم زمان و تاریخ در جاوااسکریپت
۲۸شی ریاضی (Math) در جاوااسکریپت
۲۹ایجاد عدد تصادفی در جاوااسکریپت
۳۰مقادیر بولین (Booleans) در جاوااسکریپت
۳۱عملگرهای منطقی و مقایسه‌ای در جاوااسکریپت
۳۲ساختار if else و else if در جاوااسکریپت
۳۳تکه کد Switch در جاوا اسکریپت
۳۴حلقه For در جاوااسکریپت
۳۵حلقه While در جاوااسکریپت
۳۶کلمات کلیدی Break و Continue در جاوااسکریپت
۳۷تبدیل نوع داده‌ها در جاوااسکریپت
۳۸عملیات‌های بیتی در جاوااسکریپت
۳۹عبارات با قاعده در جاوااسکریپت
۴۰خطاها در جاوااسکریپت - رخ دادن خطا و رفع آن
۴۱Scope در جاوااسکریپت
۴۲Hoisting یا جا به جایی کدها در جاوااسکریپت
۴۳استفاده از مد یا حالت سخت‌گیرانه (use strict) در جاوااسکریپت
۴۴کلمه کلیدی This در جاوااسکریپت
۴۵کلمه کلیدی Let در جاوااسکریپت
۴۶ثابت‌ها در جاوااسکریپت
۴۷تعریف توابع به صورت پیکان
۴۸کلاس‌ها در جاوااسکریپت
۴۹اشکال‌زدایی در جاوااسکریپت
۵۰راهنمای استایل و استانداردهای کدنویسی در جاوااسکریپت
۵۱بهترین تمرینات جاوااسکریپت
۵۲اشتباهات رایج در برنامه‌نویسی جاوااسکریپت
۵۳کارایی در جاوااسکریپت
۵۴کلمات رزرو شده در جاوااسکریپت
۵۵ورژن‌های جاوااسکریپت
۵۶ECMAScript 5 - JavaScript 5
۵۷ECMAScript 6 - ECMAScript 2015
۵۸جیسون (JSON) در جاوااسکریپت
فرم‌ها
۱فرم‌ها در جاوااسکریپت
۲API ارزشیابی در جاوااسکریپت
اشیاء (object) در جاوااسکریپت
۱تست
۲تست
۳تست
۴تست
۵تست
۶تست
۷تست
JS Functions
۱تست
۲تست
۳تست
۴تست
۵تست
۶تست
JS HTML DOM
۱تست
۲تست
۳تست
۴تست
۵تست
۶تست
۷تست
۸تست
۹تست
۱۰تست
۱۱تست
۱۲تست
۱۳تست

متدهای پیمایش آرایه بر روی هر یک از آیتم‌های آرایه عمل می‌کنند. [۱]

متد ()Array.forEach

متد​forEach()​یک تابع را برای هر یک از عناصر آرایه فراخوانی می‌کند.

مثال

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);

function myFunction(value, index, array) {
  txt = txt + value + "<br>";
}

توجه داشته باشید که تابع ۳ آرگومان دارد:

  • مقدار عنصر
  • اندیس عنصر
  • خود آرایه

مثال بالا تنها از پارامتر value استفاده می‌کند. این مثال رامی توانیم به صورت زیر بازنویسی کنیم:

مثال

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);

function myFunction(value) {
  txt = txt + value + "<br>";
}

متد Array.forEach() در تمامی مرورگرها جز مرورگر اینترنت اکسپلور ورژن ۸ یا قدیمی‌تر پشتیبانی می‌شود.

Chrome.gif Edge.gif Firefox.gif Safari.gif Opera.gif
بله ۹٫۰ بله بله بله


متد ()array.map

متد​map​یک آرایه جدید با قابلیت اجرای یک تابع روی هر عنصر آرایه ایجاد می‌کند.

متد​map​تابع را بدون مقدار برای هر عنصر آرایه اجرا نمی‌کند.

متد​map​آرایه اصلی را تغییر نمی‌دهد.

مثال زیر، هر عنصر آرایه را در عدد ۲ ضرب می‌کند:

مثال

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value, index, array) {
  return value * 2;
}

توجه داشته باشید که تابع ۳ آرگومان ورودی دارد:

  • مقدار عنصر
  • اندیس عنصر
  • خود آرایه

زمانی که تابع ما فقط از آرگومان مقدار استفاده می‌کند، اندیس و پارامتر آرایه می‌توانند نوشته نشوند:

مثال

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value) {
  return value * 2;
}

متد​Array.map()​در تمامی مرورگرها جز مرورگر اینترنت اکسپلور ورژن ۸ یا قدیمی‌تر پشتیبانی می‌شود.

Chrome.gif Edge.gif Firefox.gif Safari.gif Opera.gif
بله ۹٫۰ بله بله بله


متد ()Array.filter

متد​filter()​یک آرایه جدید را با عناصر آرایه با یک شرط ایجاد می‌کند.

مثال زیر یک آرایه جدید از عناصری که مقدار آنها از ۱۸ بیشتر است را می‌سازد:

مثال

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

توجه داشته باشید که تابع ۳ آرگومان ورودی دارد:

  • مقدار عنصر
  • اندیس عنصر
  • خود آرایه

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

مثال

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value) {
  return value > 18;
}

متد​Array.filter()​در تمامی مرورگرها جز مرورگر اینترنت اکسپلور ورژن ۸ یا قدیمی‌تر پشتیبانی می‌شود.

Chrome.gif Edge.gif Firefox.gif Safari.gif Opera.gif
بله ۹٫۰ بله بله بله


متد ()Array.reduce

متد​reduce()​یک تابع را بر روی هر عنصر از آرایه اجرا می‌کند تا آن را به یک تک مقدار (ساده کند) تبدیل کند.

متد​reduce()​از سمت چپ به راست در آرایه کار می‌کنید. شما می‌توانید کاربرد متد​reduceRight()​را هم ببینید.


مثال زیر، مجموع تمامی عدد درون آرایه را پیدا می‌کند:

مثال

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}

توجه داشته باشید که این تابع ۴ آرگومان دارد:

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

مثال بالا از اندیس و پارامتر آرایه استفاده نمی‌کند. این مثال را می‌توان به صورت زیر بازنویسی کرد:

مثال

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);

function myFunction(total, value) {
  return total + value;
}

متد​reduce()​می‌تواند یک مقدار اصلی یا initial را به عنوان پارامتر ورودی قبول کند:

مثال

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction, 100);

function myFunction(total, value) {
  return total + value;
}

متد​Array.reduce()​در تمامی مرورگرها به جز اینترنت اکسپلور ورژن ۸ یا ورژن‌های قدیمی‌تر پشتیبانی می‌شود.

Chrome.gif Edge.gif Firefox.gif Safari.gif Opera.gif
بله ۹٫۰ بله بله بله


متد ()Array.reduceRight

متد​reduceRight()​یک تابع را بر روی هر یک از عناصر آرایه اجرا می‌کند تا آنها را (ساده) به یک تک مقداری تبدیل کند.

متد​reduceRight()​از سمت راست به چپ در آرایه کار می‌کند. شما می‌توانید کارایی متد​reduce()​را هم ببینید.


این مثال مجموع تمامی اعداد موجود در یک آرایه را پیدا می‌کند:

مثال

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);

function myFunction(total, value, index, array) {
  return total + value;
}

توجه داشته باشید که این تابع ۴ آرگومان دارد:

  • مجموع (مقدار اصلی / مقدار بازگشتی قبلی)
  • مقدار عنصر
  • اندیس عنصر
  • خود آرایه

مثال بالا از اندیس و پارامتر آرایه استفاده نمی‌کند. این مثال را می‌توان به صورت زیر بازنویسی کرد:

مثال

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);

function myFunction(total, value) {
  return total + value;
}

متد​Array.reduceRight()​در تمامی مرورگرها به جز اینترنت اکسپلور به جز ورژن ۸ و ورژن‌های قدیمی‌تر پشتیبانی می‌شود.

Chrome.gif Edge.gif Firefox.gif Safari.gif Opera.gif
بله ۹٫۰ بله بله بله


متدهای ()Array.every

متد​every()​وجود یک شرط را بر روی تمام عناصر یک آرایه بررسی می‌کند.

این مثال بررسی می‌کند که آیا مقادیری بزرگتر از ۱۸ درون عناصر آرایه وجود دارد:

مثال

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

توجه داشته باشید که این تابع ۳ آرگومان دارد:

  • مقدار عنصر
  • اندیس عنصر
  • خود آرایه

زمانی که تابع فراخوانی شده فقط از یک پارامتر (پارامتر مقدار (به انگلیسی: Value)) استفاده می‌کند، سایر پارامترها می‌تواند نوشته نشود:

مثال

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);

function myFunction(value) {
  return value > 18;
}

متد​Array.every()​در تمامی مرورگرها به جز اینترنت اکسپلور به جز ورژن ۸ و ورژن‌های قدیمی‌تر پشتیبانی می‌شود.

Chrome.gif Edge.gif Firefox.gif Safari.gif Opera.gif
بله ۹٫۰ بله بله بله


متد ()Array.some

متد​some()​وجود یک شرط را بر روی هر یک از عناصر آرایه بررسی می‌کند.

این مثال بررسی می‌کند که آیا مقادیری بزرگتر از ۱۸ درون عناصر آرایه وجود دارد:

مثال

var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

توجه داشته باشید که این تابع ۳ آرگومان دارد:

  • مقدار عنصر
  • اندیس عنصر
  • خود آرایه

متد​Array.some()​در تمامی مرورگرها به جز اینترنت اکسپلور به جز ورژن ۸ و ورژن‌های قدیمی‌تر پشتیبانی می‌شود.

Chrome.gif Edge.gif Firefox.gif Safari.gif Opera.gif
بله ۹٫۰ بله بله بله


متد ()Array.indexOf

متد​indexOf()​در بین عناصر یک آرایه یک مقدار را جستجو می‌کند و سپس پس از یافتن مقدار، شماره اندیس آن را بازمی‌گرداند.

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

مثال

var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

درون یک آرایه به دنبال عنصر "Apple" می‌گردد:

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");

متد​Array.indexOf()​در تمامی مرورگرها به جز مرورگر اینترنت اکسپلور ورژن ۸ و ورژن‌های قدیمی‌تر پشتیبانی می‌شود.

Chrome.gif Edge.gif Firefox.gif Safari.gif Opera.gif
بله ۹٫۰ بله بله بله


شیوهٔ نوشتار دستور

​array.indexOf(item, start)​
Item این پارامتر اجباری است. مقداری که می‌بایست متد به دنبال آن بگردد.
Start این پارامتر اختیاری است. موقعیتی که جستجو از آن می‌بایست شروع شود. اگر مقدار منفی به این پارامتر داده شود موجب می‌شود که اندیس شماره جستجو از آخر ارایه شمارده شود و به سمت پایان آرایه عمل جستجو ادامه می‌یابد.

متد​Array.indexOf()​مقدار ۱- را در صورتی که عنصر مورد نظر پیدا نشود برمی‌گرداند.

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

متد ()Array.lastIndexOf

متد​Array.lastIndexOf()​بسیار شبیه به متد​Array.indexOf()​است اما این متد، اندیس آخرین عنصر متناظر را بازمی‌گرداند.

مثال

کد زیر در یک آرایه به دنبال عنصر "Apple " می‌گردد:

var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");

متد​Array.lastIndexOf()​در تمامی مرورگرها به جز مرورگر اینترنت اکسپلور به جز ورژن ۸ و ورژن‌های قدیمی‌تر پشتیبانی می‌شود.

Chrome.gif Edge.gif Firefox.gif Safari.gif Opera.gif
بله ۹٫۰ بله بله بله


شیوهٔ نوشتار دستور

​array.lastIndexOf(item, start)​
Item این پارامتر اجباری است. مقداری که می‌بایست متد به دنبال آن بگردد.
Start این پارامتر اختیاری است. موقعیتی که جستجو از آن می‌بایست شروع شود. اگر مقدار منفی به این پارامتر داده شود موجب می‌شود که اندیس شماره جستجو از آخر ارایه شمارده شود و به سمت پایان آرایه عمل جستجو ادامه می‌یابد.

متد ()Array.find

متد​find()​مقدار عنصر اولی که یک شرط در آن برقرار باشد را برمی‌گرداند.

این مثال اولین عنصر (مقدار اولین عنصر) را که بزرگتر از عدد ۱۸ باشد را برمی‌گرداند:

مثال

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

توجه داشته باشید که این تابع ۳ آرگومان دارد:

  • مقدار عنصر
  • اندیس عنصر
  • خود آرایه

متد​Array.find()​مرورگرهای قدیمی پشتیبانی نمی‌شود. تمامی اولین ورژن‌های مرورگرهایی که از این قابلیت پشتیبانی می‌کنند را می‌توانید در جدول زیر ببینید.

Chrome.gif Edge.gif Firefox.gif Safari.gif Opera.gif
۴۵ ۱۲ ۲۵ ۸ ۳۲


متد ()Array.findIndex

متد​findIndex()​اندیس اولین عنصری را که در آن شرط برقرار باشد را برمی‌گرداند.

این مثال، اندیس اولین عنصری را که بزرگتر از ۱۸ باشد را بدست می‌آورد:

مثال

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

توجه داشته باشید که این تابع ۳ آرگومان دارد:

  • مقدار عنصر
  • اندیس عنصر
  • خود آرایه

متد​Array.findIndex()​در مرورگرهای قدیمی پشتیبانی نمی‌شود. تمامی اولین ورژن‌های مرورگرهایی که از این قابلیت پشتیبانی می‌کنند را می‌توانید در جدول زیر ببینید.

Chrome.gif Edge.gif Firefox.gif Safari.gif Opera.gif
۴۵ ۱۲ ۲۵ ۸ ۳۲


منابع آموزشی