المصفوفات — هياكل بيانات أساسية 📋
المصفوفات في JavaScript مرنة جداً وتوفر عشرات الدوال المدمجة.
الدوال الأساسية
push/pop — إضافة/حذف من النهايةshift/unshift — حذف/إضافة من البدايةsplice — إضافة/حذف من أي موضعmap, filter, reduce — تحويل وتصفيةfind, findIndex, includes — بحثsort, reverse — ترتيبflat, flatMap — تسطيح- Spread operator
[...arr]
تمرين
اكتب دالة groupBy(arr, key) تجمّع مصفوفة كائنات حسب مفتاح معين.
💡 تلميح: استخدم reduce لبناء كائن حيث كل مفتاح يحتوي على مصفوفة.
function groupBy(arr, key) {
return arr.reduce((groups, item) => {
const val = item[key];
groups[val] = groups[val] || [];
groups[val].push(item);
return groups;
}, {});
}
const students = [
{ name: "أحمد", level: "مبتدئ" },
{ name: "سارة", level: "متوسط" },
{ name: "خالد", level: "مبتدئ" },
{ name: "نورة", level: "متقدم" },
{ name: "عمر", level: "متوسط" }
];
console.log(JSON.stringify(groupBy(students, "level"), null, 2));