انتقل إلى المحتوى

٤.٢ تدريبات إضافية

الوصول إلى الخصائص

التمرين 1: مثّل كتابًا بكائن JavaScript، وزنه 0.5 كغ وعدد صفحاته 500.

var book = {
  weight: 0.5,
  pages: 500
};

التمرين 2: ارجع إلى التمرين 1؛ ما وزن الكتاب؟

var book = {
  weight: 0.5,
  pages: 500
};

console.log(book["weight"]);

النتيجة هي: 0.5

التمرين 3: ارجع إلى التمرين 1؛ كم عدد صفحاته؟

var book = {
  weight: 0.5,
  pages: 500
};

console.log(book["pages"]);

النتيجة هي: 500

التمرين 4: افحص نتيجة الشيفرة التالية.

var book = {
  weight: 0.5,
  pages: 500
};

console.log(book.weight);
console.log(book.pages);

النتيجة كما يلي:

0.5
500

كيف نصل إلى خصائص الكائن؟

  1. باستخدام الأقواس المربعة: object["property"].

  2. باستخدام النقطة: object.property.

التمرين 5: مثّل فيديو يوتيوب بكائن له أزواج المفاتيح والقيم التالية:

  1. المدة: 30 دقيقة
  2. المقدّم: نورس علي
  3. الفئة: تعليم
  4. العنوان: إنشاء قالب WordPress
  5. اللغة: العربية
var ytVideo = {
  length: "30min",
  host: "Nawras Ali",
  category: "Education",
  title: "Create a WordPress Theme",
  language: "Arabic"
};

console.log(ytVideo);

النتيجة هي: {length: "30min", host: "Nawras Ali", category: "Education", title: "Create a WordPress Theme", language: "Arabic"}

التمرين 6: ارجع إلى التمرين 5؛ اعرض قيم جميع خصائص كائن الفيديو باستخدام الأقواس المربعة.

var ytVideo = {
  length: "30min",
  host: "Nawras Ali",
  category: "Education",
  title: "Create a WordPress Theme",
  language: "Arabic"
};

console.log(ytVideo["length"]);
console.log(ytVideo["host"]);
console.log(ytVideo["category"]);
console.log(ytVideo["title"]);
console.log(ytVideo["language"]);

النتيجة كما يلي:

30min
Nawras Ali
Education
Create a WordPress Theme
Arabic

التمرين 7: ارجع إلى التمرين 5؛ اعرضها باستخدام النقطة.

var ytVideo = {
  length: "30min",
  host: "Nawras Ali",
  category: "Education",
  title: "Create a WordPress Theme",
  language: "Arabic"
};

console.log(ytVideo.length);
console.log(ytVideo.host);
console.log(ytVideo.category);
console.log(ytVideo.title);
console.log(ytVideo.language);

النتيجة كما يلي:

30min
Nawras Ali
Education
Create a WordPress Theme
Arabic

التمرين 8: مثّل مستخدمًا بكائن JavaScript له الخصائص التالية:

  1. الاسم الأول: Ali
  2. اسم العائلة: Zaki
  3. اسم المستخدم: AliZaki88
  4. البريد الإلكتروني: alizaki@mail.com
var user = {
  firstName: "Ali",
  lastName: "Zaki",
  username: "AliZaki88",
  email: "alizaki@mail.com"
}

console.log(user);

النتيجة هي: {firstName: "Ali", lastName: "Zaki", username: "AliZaki88", email: "alizaki@mail.com"}

التمرين 9: ارجع إلى التمرين 8؛ اعرض قيم خصائص المستخدم باستخدام الأقواس المربعة.

var user = {
  firstName: "Ali",
  lastName: "Zaki",
  username: "AliZaki88",
  email: "alizaki@mail.com"
}

console.log(user["firstName"]);
console.log(user["lastName"]);
console.log(user["username"]);
console.log(user["email"]);

النتيجة كما يلي:

Ali
Zaki
AliZaki88
alizaki@mail.com

التمرين 10: ارجع إلى التمرين 8؛ اعرض قيم خصائص المستخدم باستخدام النقطة.

var user = {
  firstName: "Ali",
  lastName: "Zaki",
  username: "AliZaki88",
  email: "alizaki@mail.com"
}

console.log(user.firstName);
console.log(user.lastName);
console.log(user.username);
console.log(user.email);

النتيجة كما يلي:

Ali
Zaki
AliZaki88
alizaki@mail.com

إضافة خصائص جديدة

التمرين 11: أضف إلى كائن الكتاب الخاصية "dimensions" بالقيمة "16.256 x 3.785 x 24.181 cm". تلميح: استخدم book["newProperty"] = value. اعرض كائن الكتاب في وحدة التحكم.

var book = {
  weight: 0.5,
  pages: 500
};

book["dimensions"] = "16.256 x 3.785 x 24.181 cm";

console.log(book);

النتيجة هي: {weight: 0.5, pages: 500, dimensions: "16.256 x 3.785 x 24.181 cm"}

التمرين 12: ارجع إلى التمرين 11؛ أضف الخاصية "publisher" بالقيمة "LWN for publishing". استخدم book.newProperty = value. اعرض كائن الكتاب في وحدة التحكم.

var book = {
  weight: 0.5,
  pages: 500
};

book["dimensions"] = "16.256 x 3.785 x 24.181 cm";
book.publisher = "LWN for publishing";

console.log(book);

النتيجة هي: {weight: 0.5, pages: 500, dimensions: "16.256 x 3.785 x 24.181 cm", publisher: "LWN for publishing"}

كيف نضيف خاصية إلى كائن؟

  1. باستخدام الأقواس المربعة: object["newProperty"] = value.
  2. باستخدام النقطة: object.newProperty = value.

التمرين 13: أضف إلى كائن الفيديو الخاصية "playlist" بالقيمة "WordPress Playlist".

var ytVideo = {
  length: "30min",
  host: "Nawras Ali",
  category: "Education",
  title: "Create a WordPress Theme",
  language: "Arabic"
};

ytVideo["playlist"] = "WordPress Playlist";
//you can also write:
//ytVideo.playlist = "WordPress Playlist";

console.log(ytVideo);

النتيجة هي: {length: "30min", host: "Nawras Ali", category: "Education", title: "Create a WordPress Theme", language: "Arabic", playlist: "WordPress Playlist"}

التمرين 14: أضف إلى كائن المستخدم الخاصية "isLoggedIn" بالقيمة true.

var user = {
  firstName: "Ali",
  lastName: "Zaki",
  username: "AliZaki88",
  email: "alizaki@mail.com"
}

user.isLoggedIn = true;
//you can also write:
//user["isLoggedIn"] = true;

console.log(user);

النتيجة هي: {firstName: "Ali", lastName: "Zaki", username: "AliZaki88", email: "alizaki@mail.com", isLoggedIn: true}


حذف الخصائص

التمرين 15: احذف الخاصية pages من كائن الكتاب التالي. تلميح: استخدم delete book["pages"]

var book = {
  weight: 0.5,
  pages: 500
};

delete book["pages"]

console.log(book);

النتيجة هي: {weight: 0.5}

التمرين 16: احذف الخاصية title من كائن الفيديو التالي. تلميح: استخدم delete ytVideo.title

var ytVideo = {
  length: "30min",
  host: "Nawras Ali",
  category: "Education",
  title: "Create a WordPress Theme",
  language: "Arabic"
};

delete ytVideo.title;

console.log(ytVideo);

النتيجة هي: {length: "30min", host: "Nawras Ali", category: "Education", language: "Arabic"}

كيف نحذف خصائص الكائن؟

  1. delete object["property"].

  2. delete object.property.

التمرين 17: احذف firstName و lastName من كائن المستخدم التالي.

var user = {
  firstName: "Ali",
  lastName: "Zaki",
  username: "AliZaki88",
  email: "alizaki@mail.com"
}

delete user["firstName"];
delete user.lastName;

console.log(user);

النتيجة هي: {username: "AliZaki88", email: "alizaki@mail.com"}


الدالة المصنعية (Factory Function)

التمرين 18: أنشئ دالة مصنعية لكائنات الكتب، اعتمادًا على الكائن التالي.

/*
var book = {
  weight: null,
  pages: null,
  dimensions: null,
  publisher: null
}
*/

function genBook(weight, pages, dimensions, publisher){

  var book = {
    weight: weight,
    pages: pages,
    dimensions: dimensions,
    publisher: publisher
  };
  return book;
}

var book1 = genBook("0.2kg", "200", "8 x 3 x 30 cm", "LWN for publishing");
var book2 = genBook("0.5kg", "600", "9 x 7 x 35 cm", "Knowledge Light");
var book3 = genBook("0.3kg", "150", "8 x 3 x 30 cm", "RamaKrishna for publishing");

console.log(book1);
console.log(book2);
console.log(book3);

النتيجة كما يلي:

{weight: "0.2kg", pages: "200", dimensions: "8 x 3 x 30 cm", publisher: "LWN for publishing"}
{weight: "0.5kg", pages: "600", dimensions: "9 x 7 x 35 cm", publisher: "Knowledge Light"}
{weight: "0.3kg", pages: "150", dimensions: "8 x 3 x 30 cm", publisher: "RamaKrishna for publishing"}

التمرين 19: أنشئ دالة مصنعية لكائنات المستخدمين، اعتمادًا على الكائن التالي.

/*
var user = {
  username: "AliZaki88",
  email: "alizaki@mail.com"
}
*/

function genUser(username, email){

  var user = {
    username: username,
    email: email
  };
  return user;
}

var user1 = genUser("trueWarrior99", "user1@mail.com");
var user2 = genUser("redFlower4", "user2@mail.com");

console.log(user1);
console.log(user2);

النتيجة كما يلي:

{username: "trueWarrior99", email: "user1@mail.com"}
script.js:21 {username: "redFlower4", email: "user2@mail.com"}

التمرين 20: أنشئ دالة مصنعية لكائنات الفيديو، اعتمادًا على الكائن التالي.

/*
var video = {
  length: null,
  host:  null,
  language: null"
};
*/

function genVideo(length, host, language){

  var video = {
    length: length,
    host:  host,
    language: language
  };

  return video;
}

var video1 = genVideo("20min", "LWN", "Arabic");
var video2 = genVideo("2h", "S.V. Channel", "Sanskrit");
var video3 = genVideo("10min", "Ted", "English");
var video4 = genVideo("30sec", "Unknown", "German");

console.log(video1);
console.log(video2);
console.log(video3);
console.log(video4);

النتيجة كما يلي:

{length: "20min", host: "LWN", language: "Arabic"}
{length: "2h", host: "S.V. Channel", language: "Sanskrit"}
{length: "10min", host: "Ted", language: "English"}
{length: "30sec", host: "Unknown", language: "German"}