JavaScript – تکرار آرایهها (Array Iteration)
آخرین بروزرسانی:
جاوا اسکریپت: تکرار بر روی آرایهها
جاوا اسکریپت روشهای مختلفی برای تکرار (Iteration) بر روی آرایهها ارائه میدهد که امکان کار با هر آیتم موجود در آرایه را فراهم میکنند. این روشها شامل موارد زیر هستند:
متدهای تکرار آرایه
- forEach()
- map()
- flatMap()
- filter()
- reduce()
- reduceRight()
متد forEach()
- این متد یک تابع (Callback) را برای هر عنصر آرایه اجرا میکند.
- پارامترهای ورودی Callback:
- مقدار آیتم
- اندیس آیتم
- خود آرایه
مثال:
const numbers = [45, 4, 9, 16, 25];
let txt = "";
numbers.forEach(myFunction);
function myFunction(value) {
txt += value + "<br>";
}
متد map()
- متدی که یک آرایه جدید با اعمال یک تابع بر روی هر عنصر ایجاد میکند.
- این متد آرایه اصلی را تغییر نمیدهد.
مثال:
const numbers1 = [45, 4, 9, 16, 25];
const numbers2 = numbers1.map(value => value * 2);
متد flatMap()
- ابتدا همه عناصر آرایه را Map میکند و سپس آرایه را تخت (Flatten) میکند.
- پشتیبانی مرورگرها: از سال 2020 در مرورگرهای مدرن پشتیبانی میشود.
مثال:
const myArr = [1, 2, 3, 4, 5, 6];
const newArr = myArr.flatMap(x => x * 2);
متد filter()
- متدی که عناصر آرایه را بر اساس یک تست مشخص فیلتر میکند.
- این متد آرایهای جدید برمیگرداند.
مثال:
const numbers = [45, 4, 9, 16, 25];
const over18 = numbers.filter(value => value > 18);
متد reduce()
- مقادیر آرایه را به یک مقدار واحد کاهش میدهد.
- از چپ به راست آرایه را پردازش میکند.
مثال:
const numbers = [45, 4, 9, 16, 25];
const sum = numbers.reduce((total, value) => total + value, 0);
متد reduceRight()
- مشابه
reduce
است، اما پردازش را از راست به چپ انجام میدهد.
مثال:
const numbers = [45, 4, 9, 16, 25];
const sum = numbers.reduceRight((total, value) => total + value);
متد every()
- بررسی میکند که آیا همه مقادیر آرایه یک شرط خاص را برآورده میکنند یا خیر.
مثال:
const numbers = [45, 4, 9, 16, 25];
const allOver18 = numbers.every(value => value > 18);
متد some()
- بررسی میکند که آیا حداقل یک مقدار آرایه یک شرط خاص را برآورده میکند یا خیر.
مثال:
const numbers = [45, 4, 9, 16, 25];
const someOver18 = numbers.some(value => value > 18);
متد Array.from()
- این متد آرایهای از یک آبجکت دارای ویژگی طول (length) یا یک آبجکت Iterable ایجاد میکند.
مثال:
const arr = Array.from("ABCDEFG");
متد keys() و entries()
keys()
- کلیدهای آرایه را به صورت یک Iterator بازمیگرداند
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const keys = fruits.keys();
for (let key of keys) {
console.log(key);
}
entries()
- کلید/مقدار آرایه را به صورت یک Iterator بازمیگرداند.
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const entries = fruits.entries();
for (let entry of entries) {
console.log(entry);
}
متد with()
- این متد (اضافه شده در ES2023) اجازه میدهد یک عنصر خاص را در آرایه بدون تغییر آرایه اصلی جایگزین کنید.
مثال:
const months = ["January", "February", "March"];
const newMonths = months.with(2, "March Updated");
عملگر Spread (...)
- عناصر یک آرایه را به صورت تکی باز میکند.
مثال:
const q1 = ["Jan", "Feb", "Mar"];
const q2 = ["Apr", "May", "Jun"];
const year = [...q1, ...q2];
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام