فهم طول كائن JavaScript
: أفضل الممارسات والحلول الحديثة
تُستخدم كائنات JavaScript على نطاق واسع، لكن كيف يمكنك تحديد طولها؟ إذا وجدت نفسك يومًا ما بحاجة إلى معرفة عدد الخصائص التي يحتوي عليها كائن، فلست وحدك. تستكشف هذه المقالة أفضل الطرق للحصول على طول كائن JavaScript والفروق الدقيقة المعنية، بما في ذلك مناقشة حول الرموز وخصائصها.
المشكلة
عند العمل مع كائنات JavaScript، قد تحتاج إلى معرفة عدد الخصائص التي تمتلكها. على سبيل المثال، بالنظر إلى كائن بسيط مثل هذا:
const myObject = new Object();
myObject["firstname"] = "Gareth";
myObject["lastname"] = "Simpson";
myObject["age"] = 21;
يمكنك أن تسأل: هل هناك طريقة مدمجة أو مقبولة بشكل شائع للحصول على طول هذا الكائن؟
الحلول الحديثة
اعتبارًا من عام 2016، تدعم العديد من المتصفحات ES5 وما بعدها، مما يسمح لنا بتحديد طول كائن بسهولة باستخدام طريقة Object.keys()
. تعيد هذه الطريقة مصفوفة بأسماء الخصائص الخاصة بالشيء، ومن خلال قياس طول هذه المصفوفة، يمكننا معرفة عدد الخصائص التي يحتفظ بها الكائن.
استخدام Object.keys()
إليك مثالاً على كيفية تنفيذ ذلك:
var size = Object.keys(myObject).length;
console.log(size); // مخرجات: 3
مزايا استخدام Object.keys()
- البساطة: من السهل تنفيذها ومباشرة.
- لا تتطلب تعديلات على النمط الأساسي: لا تتطلب هذه الطريقة تغيير نمط كائن Object، مما يعد ضروريًا لتجنب الأخطاء والنزاعات المحتملة في الكود الخاص بك.
خصائص الرموز
من المهم ملاحظة أن الكائنات يمكن أن تحتوي على خصائص رمزية قد لا تعيدها Object.keys()
. الرموز هي نوع بيانات خاص في JavaScript تُستخدم لإنشاء معرّفات فريدة لخصائص الكائن. يساعد هذا في منع الكتابة فوق الخصائص، مما يجعل الكود الخاص بك أكثر قوة.
الوصول إلى خصائص الرموز
يمكنك استخدام Object.getOwnPropertySymbols()
لاسترجاع هذه الخصائص. إليك كيفية التعامل مع الخصائص العادية والرمزية على حدٍ سواء:
var person = {
[Symbol('name')]: 'John Doe',
[Symbol('age')]: 33,
"occupation": "Programmer"
};
// الحصول على طول الخصائص غير الرمزية
const propOwn = Object.getOwnPropertyNames(person);
console.log(propOwn.length); // مخرجات: 1
// الحصول على طول الخصائص الرمزية
let propSymb = Object.getOwnPropertySymbols(person);
console.log(propSymb.length); // مخرجات: 2
ملخص حول استخدام الطرق
باختصار، إليك الطرق الرئيسية للتحقق عند حساب طول كائن JavaScript:
Object.keys(obj)
: تعيد عدد الخصائص القابلة للعد من النوع السلسلي.Object.getOwnPropertyNames(obj)
: تعيد عدد جميع الخصائص الخاصة (تتجاهل الرموز).Object.getOwnPropertySymbols(obj)
: تعيد عدد الخصائص الرمزية الخاصة.
نهج بديل
في الأكواد القديمة، كان النهج الشائع هو إنشاء دالة لحساب الحجم يدويًا:
Object.size = function(obj) {
var size = 0;
for (var key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
// الحصول على حجم كائن
const myObj = {};
var size = Object.size(myObj);
الحذر
عمومًا، ليس من الأفضل إضافة طرق إلى Object.prototype
، حيث يمكن أن يؤدي ذلك إلى سلوكيات غير متوقعة في تطبيقاتك.
الخلاصة
تحديد طول كائن JavaScript هي مهمة شائعة يمكن تحقيقها بكفاءة باستخدام Object.keys()
، مع مراعاة الرموز لضمان الشمولية. مع هذه الأدوات في متناول يدك، ستكون قادرًا على التعامل مع أعداد خصائص الكائنات بثقة وفعالية في تطبيقات JavaScript الخاصة بك.