نکات جاوااسکریپت (forEach و map)
در تاریخ توسط

 

حلقه forEach در جاوا اسکریپت روی یک آرایه یا لیست انجام میشود و به عنوان آرگومان ورودی یک function دریافت میکند


var fruits = ["apple", "orange", "cherry"]; fruits.forEach(myFunction); function myFunction(item, index) { document.getElementById("demo").innerHTML += index + ":" + item + ""; } output : 0:apple
1:orange
2:cherry

امضای کامل حلقه forEach
array.forEach(function(currentValue, index, arr), thisValue)
به عنوان مثال
var numbers = [65, 44, 12, 4];
numbers.forEach(myFunction)

function myFunction(item, index, arr) {
  arr[index] = item * 10;
} 
document.getElementById("demo").innerHTML = numbers;

output :
650,440,120,40

map در جاوا اسکریپت
var numbers = [65, 44, 12, 4];
var newarray = numbers.map(myFunction)

function myFunction(num) {
  return num * 10;
}

document.getElementById("demo").innerHTML = newarray;
map کردن نیز همانند forEach روی آرایه‌ها و لیست‌ها انجام میشود  و به عنوان ورودی function دریافت میکند . به این گونه توابع higher order function گفته میشود . نام تابع بدون پرانتز و متغیر درون map و سایر higher order function‌ها نوشته میشود . یا اینکه میشه مستقیم خود function رو اون تو نوشت و یا از Arrow function‌ها استفاده کرد.
- تفاوت map و forEach در این است که توابعی مثل forEach در واقع Mutable (قابل تغییر) هستند  و توابعی مثل map و filter  از نوع immutable هستند به این معنی که آرایه اصلی را تغییر نمیدهند و یک آرایه جدید ایجاد میکنند و بازگشت میدهند .
- نکته دیگر تفاوت پرفورمنس بین forEach و map است که در map پرفورمنس بسیار بالاتر است.
- خروجی map یک آرایه یا لیست جدید است و با return بازمیگردد ، forEach خودش مستقیما خروجی ندارد. ( map  الزاما باید یک return برگرداند )
گروه های پست :
تعداد مشاهده : 501
تعداد پسندها : 1
تعداد نظرات : 0
تعداد پیوست ها : 0

ارسال دیدگاه

ایمیل شما به کاربران نمایش داده نمی شود .

دیدگاه ها

تا کنون نظری داده نشده است .
اولین کسی باشید که دیدگاه خود را ثبت می کند .

loading...

لطفا منتظر بمانید...