HTML
(کدهای قابل ویرایش آنلاین)
CSS
(کدهای قابل ویرایش آنلاین)
JS
(بدون قابلیت ویرایش آنلاین)
عملکرد کاهشی جاوااسکریپت

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

ارسال شده توسط: پردیس ساتیاری

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

استفاده از عملکرد کاهشی جاوااسکریپت

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

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

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

const array1 = [55, 3, 76, 34];
document.getElementById("test").innerHTML = array1;
function myFunction() {
    const reducer = (accumulator, currentValue) => accumulator + currentValue;
    document.getElementById("test").innerHTML = array1.reduce(reducer);
}

توضیح گام به گام نحوه کار مثال کد بالا:

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

توجه: بعد از هر دور مقدار باتری تغییر می کند.

اگر یک جمع کننده خاص می خواهیم ، باید مقدار اولیه را تعریف کنیم. مثال کد بعدی مقدار اولیه را 10 تعریف می کند:

const array1 = [55, 3, 76, 34];
document.getElementById("test").innerHTML = array1;
function myFunction() {
    const reducer = (accumulator, currentValue) => accumulator + currentValue;
    document.getElementById("test").innerHTML = array1.reduce(reducer, 10);
}

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

قوانین اصلی نحو

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

array.reduce(callback(accumulator, currentValue[, index[, array]] )[, initialValue])
  • callback: تابعی که باید روی هر عنصر آرایه اعمال شود. اگر مقدار اولیه را تعیین کنید ممکن است روی اولین مقدار تأثیر نگذارد.
  • باتری به مقدار اولیه ارائه شده بستگی دارد.
  • currentValue: مقداری که در آرایه پردازش می شود.
  • index: شاخص عنصر پردازش شده در حال حاضر.
  • array: آرایه کاهش JS به اعمال می شود.
  • initialValue: مقداری است که هنگام اجرای تابع پاسخ به عنوان اولین آرگومان استفاده می شود. اگر تعریف نشده باشد ، تابع فراخوانی اولین عنصر را می گیرد و از آن رد می شود.

آرایه های صاف با کاهش

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

در اینجا ما یک آرایه چند بعدی داریم:

var myArray = [[5, 7], [2, 5, 6], [9, 5, 3, 7]];

ما می خواهیم اینگونه شود:

[5; 7; 2; 5; 6; 9; 5; 3; 7]

در مثال زیر ، ما آرایه چند بعدی را به یک بعدی تبدیل می کنیم:

var myArray = [[5, 7], [2, 5, 6], [9, 5, 3, 7]];
document.getElementById("test").innerHTML = myArray.map(e => e).join("; ");
function myFunction() {
   var myNewArray = myArray.reduce(function (prev, curr) {
      return prev.concat(curr);
   });
   document.getElementById("test").innerHTML = myNewArray.map(e => e).join("; ");
}

نکات مهم عملکرد کاهشی جاوااسکریپت:

  • برای بهتر مدیریت آرایه ها ، روش کاهش جاوا اسکریپت را با عملکردهایی مانند ()map() ، filter و مرتب سازی ترکیب کنید.
  • اگر با یک آرایه جاوا اسکریپت در یک آرایه خالی و بدون مقدار اولیه تماس بگیرید ، یک TypeError دریافت می کنید.