()JavaScript Array map

🔹 JavaScript Array map()

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

🔸 تعریف و کاربرد

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

📘 ساختار کلی:

array.map(function(currentValue, index, array) { // return مقداری که در آرایه جدید قرار می‌گیرد })

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

🔹 مثال ۱: دو برابر کردن اعداد

const numbers = [1, 2, 3, 4]; const doubled = numbers.map(num => num * 2); console.log(doubled);

📌 خروجی:

[2, 4, 6, 8]

✅ آرایه numbers بدون تغییر باقی مانده و آرایه جدید doubled ساخته شده.

🔹 مثال ۲: به حروف بزرگ تبدیل کردن رشته‌ها

const fruits = ["apple", "banana", "cherry"]; const upperFruits = fruits.map(fruit => fruit.toUpperCase()); console.log(upperFruits);

📌 خروجی:

["APPLE", "BANANA", "CHERRY"]

🔹 مثال ۳: استخراج یک ویژگی از آبجکت‌ها

const users = [ { name: "Ali", age: 25 }, { name: "Sara", age: 30 }, { name: "Reza", age: 22 } ]; const names = users.map(user => user.name); console.log(names);

📌 خروجی:

["Ali", "Sara", "Reza"]

✅ فقط خاصیت name از هر آبجکت گرفته شده و در یک آرایه جدید ذخیره شده.

🔹 مثال ۴: استفاده از index

const numbers = [10, 20, 30]; const formatted = numbers.map((num, index) => `Item ${index + 1}: ${num}`); console.log(formatted);

📌 خروجی:

["Item 1: 10", "Item 2: 20", "Item 3: 30"]

✅ دومین پارامتر index شماره اندیس هر عنصر است.

🔹 مثال ۵: map در React

در React معمولاً از ()map برای نمایش لیست داده‌ها استفاده می‌شود:

const users = ["Ali", "Sara", "Reza"]; function App() { return ( <ul> {users.map((user, index) => ( <li key={index}>{user}</li> ))} </ul> ); } export default App;

📌 هر عنصر از آرایه به یک <li> تبدیل می‌شود.
ویژگی key برای شناسایی یکتای هر آیتم ضروری است.

🔹 مثال ۶: استفاده زنجیره‌ای با سایر متدها

const numbers = [1, 2, 3, 4, 5]; const result = numbers .map(num => num * 2) .filter(num => num > 5); console.log(result);

📌 خروجی:

[6, 8, 10]

✅ ابتدا همه اعداد دو برابر شدن، بعد اعداد بزرگ‌تر از ۵ فیلتر شدن.

🔹 تفاوت map و forEach

ویژگی()map()forEach
خروجی دارد✅ آرایه جدید برمی‌گرداند❌ چیزی برنمی‌گرداند
قابل زنجیره شدن✅ بله❌ خیر
هدف اصلیساخت آرایه جدیدانجام عملی روی عناصر (مثل چاپ)
تغییر آرایه اصلی❌ خیر❌ خیر

🔹 مثال مقایسه:

const nums = [1, 2, 3]; const doubled = nums.map(n => n * 2); // [2, 4, 6] nums.forEach(n => console.log(n * 2)); // فقط چاپ می‌کند

✅ نکته‌ها

  • ()map همیشه طول آرایه خروجی برابر با آرایه اصلی دارد.

  • اگر در تابع map چیزی return نکنی، مقدار undefined در خروجی قرار می‌گیرد.

  • تغییرات روی آرایه اصلی انجام نمی‌شود.

  • در React، پرکاربردترین متد برای render کردن لیست‌ها است.

✅ خلاصه

مفهومتوضیح
نوع متدتابع callback روی آرایه
خروجیآرایه جدید
تغییر آرایه اصلیندارد
پارامترها(value, index, array)
کاربرد رایجتغییر شکل داده‌ها، رندر لیست در React
تفاوت با forEachmap خروجی دارد، forEach ندارد


نتیجه:
()map یکی از متدهای قدرتمند و پرکاربرد جاوااسکریپت است که به شما اجازه می‌دهد آرایه‌ها را به سادگی پردازش کنید و از آن در React برای رندر کردن داده‌ها استفاده کنید.