آرایه‌های ابرگذری 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>"; 
}

آزمایش کنید

نکته:این تابع 3 پارامتر می‌پذیرد:

  • مقدار پروژه
  • نشانگر پروژه
  • آرایه خود

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

مثال

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
function myFunction(value) {
  txt = txt + value + "<br>"; 
}

آزمایش کنید

همه مرورگرها این را پشتیبانی می‌کنند Array.forEach()، به استثنای نسخه‌های 8 یا قدیمی‌تر اینترنت اکسپلورر:

بله 9.0 بله بله بله

Array.map()

map() این روش با اجرای عملیات بر روی هر عنصر آرایه، آرایه جدیدی ایجاد می‌کند.

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

map() این روش آرایه اصلی را تغییر نمی‌دهد.

این مثال هر مقدار موجود در آرایه را به 2 ضرب می‌کند:

مثال

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value, index, array) {
  return value * 2;
}

آزمایش کنید

لطفاً توجه داشته باشید که این تابع 3 پارامتر می‌پذیرد:

  • مقدار پروژه
  • نشانگر پروژه
  • آرایه خود

وقتی که تابع بازگشتی تنها از پارامتر value استفاده می‌کند، می‌توان پارامترهای index و array را حذف کرد:

مثال

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);
function myFunction(value) {
  return value * 2;
}

آزمایش کنید

همه مرورگرها این را پشتیبانی می‌کنند Array.map()، به استثنای نسخه‌های 8 یا قدیمی‌تر اینترنت اکسپلورر:

بله 9.0 بله بله بله

Array.filter()

filter() این روش یک آرایه جدید از عناصر موجود در آرایه‌ای که از آزمون عبور کرده‌اند، ایجاد می‌کند.

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

مثال

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

آزمایش کنید

لطفاً توجه داشته باشید که این تابع 3 پارامتر می‌پذیرد:

  • مقدار پروژه
  • نشانگر پروژه
  • آرایه خود

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

مثال

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);
function myFunction(value) {
  return value > 18;
}

آزمایش کنید

همه مرورگرها این را پشتیبانی می‌کنند Array.filter()، به استثنای نسخه‌های 8 یا قدیمی‌تر اینترنت اکسپلورر:

بله 9.0 بله بله بله

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

آزمایش کنید

لطفاً توجه داشته باشید که این تابع 4 پارامتر می‌پذیرد:

  • 总数(初始值/先前返回的值)
  • مقدار پروژه
  • نشانگر پروژه
  • آرایه خود

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

مثال

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);
function myFunction(total, value) {
  return total + value;
}

آزمایش کنید

reduce() این روش می‌تواند یک مقدار اولیه را پذیرد:

مثال

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction, 100);
function myFunction(total, value) {
  return total + value;
}

آزمایش کنید

همه مرورگرها این را پشتیبانی می‌کنند Array.reduce()، به استثنای نسخه‌های 8 یا قدیمی‌تر اینترنت اکسپلورر:

بله 9.0 بله بله بله

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

آزمایش کنید

لطفاً توجه داشته باشید که این تابع 4 پارامتر می‌پذیرد:

  • 总数(初始值/先前返回的值)
  • مقدار پروژه
  • نشانگر پروژه
  • آرایه خود

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

مثال

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);
function myFunction(total, value) {
  return total + value;
}

آزمایش کنید

همه مرورگرها این را پشتیبانی می‌کنند Array.reduceRight()، به استثنای نسخه‌های 8 یا قدیمی‌تر اینترنت اکسپلورر:

بله 9.0 بله بله بله

Array.every()

every() این روش بررسی می‌کند که آیا همه مقادیر آرایه از آزمون عبور کرده‌اند یا خیر.

این مثال بررسی می‌کند که آیا همه مقادیر آرایه از 18 بزرگتر هستند یا خیر:

مثال

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

آزمایش کنید

لطفاً توجه داشته باشید که این تابع 3 پارامتر می‌پذیرد:

  • مقدار پروژه
  • نشانگر پروژه
  • آرایه خود

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

مثال

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);
function myFunction(value) {
  return value > 18;
}

آزمایش کنید

همه مرورگرها این را پشتیبانی می‌کنند Array.every()، به استثنای نسخه‌های 8 یا قدیمی‌تر اینترنت اکسپلورر:

بله 9.0 بله بله بله

Array.some()

some() این روش بررسی می‌کند که آیا برخی از مقادیر آرایه از آزمون عبور کرده‌اند یا خیر.

این مثال بررسی می‌کند که آیا برخی از مقادیر آرایه از 18 بزرگتر هستند یا خیر:

مثال

var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

آزمایش کنید

لطفاً توجه داشته باشید که این تابع 3 پارامتر می‌پذیرد:

  • مقدار پروژه
  • نشانگر پروژه
  • آرایه خود

همه مرورگرها این را پشتیبانی می‌کنند Array.some()، به استثنای نسخه‌های 8 یا قدیمی‌تر اینترنت اکسپلورر:

بله 9.0 بله بله بله

Array.indexOf()

indexOf() این روش در آرایه به دنبال ارزش عناصر می‌گردد و مکان آن‌ها را بازمی‌گرداند.

نکته:مکان اولین پروژه 0 است، مکان دومین پروژه 1 است و به همین ترتیب.

مثال

مطالعه پروژه "Apple" در داخل آرایه:

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

آزمایش کنید

همه مرورگرها این را پشتیبانی می‌کنند Array.indexOf()، به استثنای نسخه‌های 8 یا قدیمی‌تر اینترنت اکسپلورر:

بله 9.0 بله بله بله

قواعد دستور زبان

array.indexOf(عنصر, شروع)
عنصر لازم است. پروژه‌ای که باید جستجو شود.
شروع اختیاری. از کجا شروع به جستجو می‌کنید. مقادیر منفی از پایان آرایه از مکان داده شده شروع به جستجو می‌کنند و به پایان می‌رسند.

اگر پروژه پیدا نشود،Array.indexOf() بازگشت -1.

اگر پروژه چندین بار ظاهر شود، مکان اولین ظاهر را بازمی‌گرداند.

Array.lastIndexOf()

Array.lastIndexOf() با Array.indexOf() مثل، اما از پایان آرایه شروع به جستجو می‌کند.

مثال

مطالعه پروژه "Apple" در داخل آرایه:

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

آزمایش کنید

همه مرورگرها این را پشتیبانی می‌کنند Array.lastIndexOf()، به استثنای نسخه‌های 8 یا قدیمی‌تر اینترنت اکسپلورر:

بله 9.0 بله بله بله

قواعد دستور زبان

array.lastIndexOf(عنصر, شروع)
عنصر لازم است. پروژه‌ای که باید جستجو شود.
شروع اختیاری. از کجا شروع به جستجو کنید. مقادیر منفی از انتهای شروع به جستجو از موقعیت داده شده و به ابتدا ادامه می‌دهند.

Array.find()

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

این مثال جستجو برای یافتن (برگشت) اولین مقدار بزرگتر از 18 است:

مثال

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

آزمایش کنید

لطفاً توجه داشته باشید که این تابع 3 پارامتر می‌پذیرد:

  • مقدار پروژه
  • نشانگر پروژه
  • آرایه خود

مرورگرهای قدیمی پشتیبانی نمی‌کنند Array.find()در زیر اولین نسخه‌ای که این روش را کاملاً پشتیبانی می‌کند، لیست شده است:

45 12 25 8 32

Array.findIndex()

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

این مثال جستجو برای یافتن اولین علامت بزرگتر از 18 است:

مثال

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

آزمایش کنید

لطفاً توجه داشته باشید که این تابع 3 پارامتر می‌پذیرد:

  • مقدار پروژه
  • نشانگر پروژه
  • آرایه خود

مرورگرهای قدیمی پشتیبانی نمی‌کنند Array.findIndex()در زیر اولین نسخه‌ای که این روش را کاملاً پشتیبانی می‌کند، لیست شده است:

45 12 25 8 32