تفاوت میان نسخههای «JavaScript:متدهای پیمایش آرایه در جاوااسکریپت»
سطر ۱۷۳: | سطر ۱۷۳: | ||
متد{{Code|code=reduceRight()|lang=javascript}}از سمت راست به چپ در آرایه کار میکند. شما میتوانید کارایی متد{{Code|code=reduce()|lang=javascript}}را هم ببینید. | متد{{Code|code=reduceRight()|lang=javascript}}از سمت راست به چپ در آرایه کار میکند. شما میتوانید کارایی متد{{Code|code=reduce()|lang=javascript}}را هم ببینید. | ||
− | {{ | + | {{نکته|type=|image=[[Image:OOjs_UI_icon_lightbulb-yellow.svg|38px]]|text=متد{{Code|code=reduceRight()|lang=javascript}}تابع اصلی را (ساده) یا تبدیل نمیکند.}} |
− | |||
این مثال مجموع تمامی اعداد موجود در یک آرایه را پیدا میکند: | این مثال مجموع تمامی اعداد موجود در یک آرایه را پیدا میکند: |
نسخهٔ ۱۴ آبان ۱۳۹۸، ساعت ۰۶:۳۷
متدهای پیمایش آرایه بر روی هر یک از آیتمهای آرایه عمل میکنند. [۱]
محتویات
متد ()Array.forEach
متدforEach()
یک تابع را برای هر یک از عناصر آرایه فراخوانی میکند.
مثال
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value, index, array) {
txt = txt + value + "<br>";
}
Note that the function takes 3 arguments:
توجه داشته باشید که تابع ۳ آرگومان دارد:
- مقدار عنصر
- اندیس عنصر
- خود آرایه
مثال بالا تنها از پارامتر value استفاده میکند. این مثال رامی توانیم به صورت زیر بازنویسی کنیم:
مثال
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value) {
txt = txt + value + "<br>";
}
Array.forEach()
is supported in all browsers except Internet Explorer 8 or earlier:
متد Array.forEach() در تمامی مرورگرها جز مرورگر اینترنت اکسپلور ورژن ۸ یا قدیمیتر پشتیبانی میشود.
![]() |
![]() |
![]() |
![]() |
![]() |
بله | ۹٫۰ | بله | بله | بله |
متد ()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()
در تمامی مرورگرها جز مرورگر اینترنت اکسپلور ورژن ۸ یا قدیمیتر پشتیبانی میشود.
![]() |
![]() |
![]() |
![]() |
![]() |
بله | ۹٫۰ | بله | بله | بله |
متد ()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()
در تمامی مرورگرها جز مرورگر اینترنت اکسپلور ورژن ۸ یا قدیمیتر پشتیبانی میشود.
![]() |
![]() |
![]() |
![]() |
![]() |
بله | ۹٫۰ | بله | بله | بله |
متد ()Array.reduce
متدreduce()
یک تابع را بر روی هر عنصر از آرایه اجرا میکند تا آن را به یک تک مقدار (ساده کند) تبدیل کند.
متدreduce()
از سمت چپ به راست در آرایه کار میکنید. شما میتوانید کاربرد متدreduceRight()
را هم ببینید.
متدreduce()
تابع اصلی را ساده نمیکند.
مثال زیر، مجموع تمامی عدد درون آرایه را پیدا میکند:
مثال
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()
در تمامی مرورگرها به جز اینترنت اکسپلور ورژن ۸ یا ورژنهای قدیمیتر پشتیبانی میشود.
![]() |
![]() |
![]() |
![]() |
![]() |
بله | ۹٫۰ | بله | بله | بله |
متد ()Array.reduceRight
متدreduceRight()
یک تابع را بر روی هر یک از عناصر آرایه اجرا میکند تا آنها را (ساده) به یک تک مقداری تبدیل کند.
متدreduceRight()
از سمت راست به چپ در آرایه کار میکند. شما میتوانید کارایی متدreduce()
را هم ببینید.
![]() | متدreduceRight() تابع اصلی را (ساده) یا تبدیل نمیکند. |
این مثال مجموع تمامی اعداد موجود در یک آرایه را پیدا میکند:
مثال
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()
در تمامی مرورگرها به جز اینترنت اکسپلور به جز ورژن ۸ و ورژنهای قدیمیتر پشتیبانی میشود.
![]() |
![]() |
![]() |
![]() |
![]() |
بله | ۹٫۰ | بله | بله | بله |
متدهای ()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()
در تمامی مرورگرها به جز اینترنت اکسپلور به جز ورژن ۸ و ورژنهای قدیمیتر پشتیبانی میشود.
![]() |
![]() |
![]() |
![]() |
![]() |
بله | ۹٫۰ | بله | بله | بله |
متد ()Array.some
متدsome()
وجود یک شرط را بر روی هر یک از عناصر آرایه بررسی میکند.
این مثال بررسی میکند که آیا مقادیری بزرگتر از ۱۸ درون عناصر آرایه وجود دارد:
مثال
var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
Note that the function takes 3 arguments:
توجه داشته باشید که این تابع ۳ آرگومان دارد:
- مقدار عنصر
- اندیس عنصر
- خود آرایه
متدArray.some()
در تمامی مرورگرها به جز اینترنت اکسپلور به جز ورژن ۸ و ورژنهای قدیمیتر پشتیبانی میشود.
![]() |
![]() |
![]() |
![]() |
![]() |
بله | ۹٫۰ | بله | بله | بله |
متد ()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()
در تمامی مرورگرها به جز مرورگر اینترنت اکسپلور ورژن ۸ و ورژنهای قدیمیتر پشتیبانی میشود.
![]() |
![]() |
![]() |
![]() |
![]() |
بله | ۹٫۰ | بله | بله | بله |
شیوهٔ نوشتار دستور
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()
در تمامی مرورگرها به جز مرورگر اینترنت اکسپلور به جز ورژن ۸ و ورژنهای قدیمیتر پشتیبانی میشود.
![]() |
![]() |
![]() |
![]() |
![]() |
بله | ۹٫۰ | بله | بله | بله |
شیوهٔ نوشتار دستور
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()
مرورگرهای قدیمی پشتیبانی نمیشود. تمامی اولین ورژنهای مرورگرهایی که از این قابلیت پشتیبانی میکنند را میتوانید در جدول زیر ببینید.
![]() |
![]() |
![]() |
![]() |
![]() |
۴۵ | ۱۲ | ۲۵ | ۸ | ۳۲ |
متد ()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()
در مرورگرهای قدیمی پشتیبانی نمیشود. تمامی اولین ورژنهای مرورگرهایی که از این قابلیت پشتیبانی میکنند را میتوانید در جدول زیر ببینید.
![]() |
![]() |
![]() |
![]() |
![]() |
۴۵ | ۱۲ | ۲۵ | ۸ | ۳۲ |
منابع آموزشی