امتحان JS 4: المصفوفات، الكائنات، و ES6+ (10 تمارين مركبة)

امتحان JS 4: المصفوفات والكائنات المتقدمة

اختبر مهاراتك في ميزات JavaScript الحديثة (ES6+)، بما في ذلك التعامل المتقدم مع البيانات والدوال المختصرة.

تمرين 1 الدوال السهمية (Arrow Functions)

حول الدالة التقليدية التالية إلى دالة سهمية:

  1. الدالة: `function add(a, b) { return a + b; }`
  2. اكتبها كدالة سهمية `const add = ...`
  3. اختصرها لتكون في سطر واحد (Implicit Return).
الحل
const add = (a, b) => a + b;
تمرين 2 دالة الخريطة (Map)

لديك مصفوفة أرقام `[1, 2, 3]`:

  1. استخدم `map` لإنشاء مصفوفة جديدة تحتوي على مربع كل رقم (الرقم مضروب في نفسه).
  2. النتيجة المتوقعة: `[1, 4, 9]`.
الحل
const numbers = [1, 2, 3];
const squared = numbers.map(num => num * num);

console.log(squared);
تمرين 3 دالة التصفية (Filter)

لديك مصفوفة أعمار `[15, 22, 18, 10, 30]`:

  1. استخدم `filter` لإنشاء مصفوفة جديدة تحتوي فقط على البالغين (أكبر من أو يساوي 18).
الحل
const ages = [15, 22, 18, 10, 30];
const adults = ages.filter(age => age >= 18);

console.log(adults); // [22, 18, 30]
تمرين 4 تفكيك الكائنات (Object Destructuring)

لديك كائن `user = { name: "Ali", email: "ali@test.com" }`:

  1. استخرج `name` و `email` في متغيرات مستقلة باستخدام Destructuring.
  2. اطبع المتغيرات الجديدة.
الحل
const user = { name: "Ali", email: "ali@test.com" };
const { name, email } = user;

console.log(name, email);
تمرين 5 معامل الانتشار (Spread Operator)

ادمج مصفوفتين:

  1. المصفوفة الأولى `arr1 = [1, 2]`.
  2. المصفوفة الثانية `arr2 = [3, 4]`.
  3. أنشئ `arr3` تحتوي على عناصر المصفوفتين باستخدام `...` (Spread).
الحل
const arr1 = [1, 2];
const arr2 = [3, 4];
const arr3 = [...arr1, ...arr2];

console.log(arr3); // [1, 2, 3, 4]
تمرين 6 دالة البحث (Find)

ابحث عن عنصر في مصفوفة كائنات:

  1. لديك مصفوفة مستخدمين `users = [{id: 1, name: "A"}, {id: 2, name: "B"}]`.
  2. استخدم `find` للحصول على المستخدم الذي يحمل `id` رقم 2.
الحل
const users = [{id: 1, name: "A"}, {id: 2, name: "B"}];
const user = users.find(u => u.id === 2);

console.log(user); // {id: 2, name: "B"}
تمرين 7 المعاملات الافتراضية (Default Parameters)

أنشئ دالة ترحيب:

  1. الدالة `greet(name)` تطبع "Hello, [name]".
  2. اجعل المعامل `name` يأخذ قيمة افتراضية "Guest" إذا لم يتم تمريره.
  3. جرب استدعاء الدالة بدون وسائط.
الحل
function greet(name = "Guest") {
    console.log(`Hello, ${name}`);
}

greet(); // Hello, Guest
تمرين 8 دالة التقليص (Reduce)

احسب مجموع الأرقام:

  1. لديك مصفوفة `prices = [10, 20, 30]`.
  2. استخدم `reduce` لحساب المجموع الكلي للعناصر.
الحل
const prices = [10, 20, 30];
const total = prices.reduce((sum, price) => sum + price, 0);

console.log(total); // 60
تمرين 9 تفكيك المصفوفات (Array Destructuring)

استخرج القيم من مصفوفة:

  1. لديك مصفوفة `coords = [10, 20]`.
  2. استخرج القيمتين في متغيرين `x` و `y` باستخدام Destructuring.
الحل
const coords = [10, 20];
const [x, y] = coords;

console.log(x, y);
تمرين 10 الكائنات الحرفية المحسنة (Enhanced Object Literals)

أنشئ كائناً بطريقة مختصرة:

  1. لديك متغيرات `name = "Sara"` و `age = 25`.
  2. أنشئ كائناً `person` يحتوي على هذه الخصائص دون تكرار الأسماء (Shorthand Property Names).
الحل
const name = "Sara";
const age = 25;

const person = { name, age }; // بدلاً من { name: name, age: age }

console.log(person);
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن