שיטות איטרציה למערכים ב-JavaScript
מערכי JavaScript מציעים כלים רבים לטיפול בנתונים. כדאי להכיר את השיטות הללו כדי לכתוב קוד נקי.
forEach() מריצה פונקציה עבור כל איבר. let nums = [10, 20, 30]; nums.forEach(num => console.log(num));
map() יוצרת מערך חדש על ידי שינוי של כל איבר. let nums = [1, 2, 3]; let result = nums.map(num => num * 2); // [2, 4, 6]
flatMap() מבצעת map לכל איבר ולאחר מכן משטחת את התוצאה. let arr = [1, 2, 3]; let result = arr.flatMap(num => [num, num * 2]); // [1, 2, 2, 4, 3, 6]
filter() יוצרת מערך חדש עם איברים שעוברים בדיקה. let nums = [10, 20, 30, 40]; let result = nums.filter(num => num > 20); // [30, 40]
reduce() משלבת את כל האיברים לערך בודד. let nums = [10, 20, 30]; let result = nums.reduce((total, num) => total + num, 0); // 60
reduceRight() עובדת כמו reduce אך מתחילה מסוף המערך. let arr = ["A", "B", "C"]; let result = arr.reduceRight((acc, value) => acc + value); // CBA
every() מחזירה true אם כל האיברים עוברים את הבדיקה. let nums = [10, 20, 30]; let result = nums.every(num => num > 5); // true
some() מחזירה true אם לפחות איבר אחד עובר את הבדיקה. let nums = [10, 20, 30]; let result = nums.some(num => num > 25); // true
from() יוצרת מערך מאובייקט איטרבילי (iterable). let result = Array.from("Hello"); // ['H', 'e', 'l', 'l', 'o']
keys() מחזירה איטרטור עם המפתחות של המערך. let fruits = ["Apple", "Mango", "Orange"]; let result = fruits.keys(); // 0, 1, 2
entries() מחזירה איטרטור עם זוגות של מפתח וערך. let fruits = ["Apple", "Mango", "Orange"]; let result = fruits.entries(); // [0, 'Apple'], [1, 'Mango']...
with() מחזירה מערך חדש שבו איבר אחד שונה. let fruits = ["Apple", "Mango", "Orange"]; let result = fruits.with(1, "Grapes"); // ['Apple', 'Grapes', 'Orange']
Spread (...) פורסת את האיברים של מערך. let arr1 = [1, 2]; let arr2 = [3, 4]; let result = [...arr1, ...arr2]; // [1, 2, 3, 4]
Rest (...) אוספת מספר איברים למערך אחד. function showNumbers(...nums) { console.log(nums); } showNumbers(10, 20, 30); // [10, 20, 30]
מקור: https://dev.to/ezhil_abinayak_e38eec8fb/array-iteration-methods-in-javascript-20mc
