التحقق من وجود المفتاح
جزء من قسم Logic & Flow في رحلة JavaScript على Coddy — الدرس 16 من 65.
للتحقق من وجود مفتاح معين في كائن JSON، استخدم إما معامل in أو hasOwnProperty(). على سبيل المثال:
const product = { "name": "Laptop", "price": 900 };
if ("price" in product) {
console.log("Key exists!");
}
if (product.hasOwnProperty("price")) {
console.log("Key exists!");
}هذا مفيد عند التحقق من وجود بيانات معينة قبل معالجتها.
سيعيد obj.hasOwnProperty("key") القيمة false إذا لم يكن لدى obj الخاصية key كخاصية خاصة به. ومع ذلك، فإن obj.key === undefined لا يعني بالضرورة أن hasOwnProperty("key") سيعيد false. هناك حالتان يكون فيهما obj.key هو undefined:
- الخاصية غير موجودة على الإطلاق ←
hasOwnProperty("key")تعيدfalse. - الخاصية موجودة ولكن قيمتها
undefined←hasOwnProperty("key")تعيدtrue.
على سبيل المثال:
const obj1 = {};
console.log(obj1.key); // undefined
console.log(obj1.hasOwnProperty("key"));
// false
const obj2 = { key: undefined };
console.log(obj2.key); // undefined
console.log(obj2.hasOwnProperty("key"));
// trueالتحدي
سهلأنشئ دالة تسمى toggleBookStatus تأخذ كائن كتاب كمعامل. يجب على الدالة القيام بما يلي:
- إذا كان الكتاب يحتوي على خاصية
isReadقيمتها true، فقم بتغييرها إلى false - إذا كان الكتاب يحتوي على خاصية
isReadقيمتها false، فقم بتغييرها إلى true - إذا لم يكن الكتاب يحتوي على خاصية
isRead، فقم بإضافتها وتعيينها إلى true - إرجاع كائن الكتاب المعدل
ورقة مرجعية
للتحقق من وجود مفتاح معين في كائن JSON، استخدم عامل التشغيل in أو hasOwnProperty():
const product = { "name": "Laptop", "price": 900 };
// باستخدام عامل التشغيل 'in'
if ("price" in product) {
console.log("Key exists!");
}
// باستخدام hasOwnProperty()
if (product.hasOwnProperty("price")) {
console.log("Key exists!");
}تُرجع hasOwnProperty() القيمة true إذا كانت الخاصية موجودة (حتى لو كانت قيمتها undefined)، و false إذا كانت الخاصية غير موجودة:
const obj1 = {};
console.log(obj1.hasOwnProperty("key")); // false
const obj2 = { key: undefined };
console.log(obj2.hasOwnProperty("key")); // trueجرّب بنفسك
function toggleBookStatus(book) {
// اكتب كودك هنا
}
// لا تكتب أي شيء خارج الدالةيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1السلاسل النصية بعمق
أساسيات السلاسل النصيةالتكرار عبر السلاسل النصيةTemplate Literalsدوال السلاسل النصيةمراجعة - String Weaver2المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات5المجموعات - الجزء الأول
ما هي المجموعة؟التكرار عبر المجموعاتإضافة عنصرإزالة عنصرالتحقق من وجود عنصرالحجم وهل هي فارغةالنسخ والمسحملخص - أساسيات المجموعات8مواضيع شيقة حول الـ Arrays
تفكيك الـ Arrayاستخدام الـ Spread Syntax في الـ Arraysالـ Sparse Arraysمراجعة - ورشة عمل الـ Arrays3JSON الجزء الأول
ما هو JSON؟التحقق من وجود المفتاحObject MethodsSpread Operator الجزء الأولSpread Operator الجزء الثانيحذف المفاتيحمراجعة - معالجة مفاتيح JSON