"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > [Leetcode] كائن فارغ

[Leetcode] كائن فارغ

تم النشر بتاريخ 2024-11-04
تصفح:719

[Leetcode] Is Object Empty

رابط السؤال: https://leetcode.com/problems/is-object-empty/description/

[بيان المشكلة]

نظرًا لكائن أو مصفوفة، قم بإرجاعها إذا كانت فارغة.

  • الكائن الفارغ لا يحتوي على أزواج قيمة المفتاح.
  • مصفوفة فارغة لا تحتوي على أي عناصر.

قد تفترض أن الكائن أو المصفوفة هي مخرجات JSON.parse.

[سؤال الفهم]

  1. Sooo... لقد حصلنا إما على مصفوفة أو كائن كمعلمة لهذه الوظيفة التي تسمى obj. (نعم، أعلم أنه اسم إبداعي للغاية، ولكن سيكون له معنى لاحقًا!)

  2. مهمتنا؟ قم بإجراء بعض حيل الترميز السحرية لمعرفة ما إذا كان هذا الكائن عبارة عن مصفوفة أم كائن. وبعد ذلك، بناءً على هذه المعرفة، سنقرر ما يجب فعله بعد ذلك.

  3. أخيرًا، نحتاج إلى التحقق مما إذا كان هذا الكائن/المصفوفة فارغًا أم لا. بسيطة، أليس كذلك؟ (أم أنه...)

[النقاط الرئيسية]

  1. أول الأشياء أولاً: "المصفوفة هي كائن في JavaScript من الناحية الفنية." نعم! هذا صحيح، المصفوفات هي نوع خاص من الكائنات في JS. لذلك، لا تخلط!

  2. اكتشاف الكائنات 101 : يمكننا التحقق مما إذا كانت المعلمة هي في الواقع كائن (أو مصفوفة) باستخدام typeof obj === 'object' && obj !== null. لماذا الجزء !== الفارغ؟ حسنًا، لأن القيمة null هي حالة خاصة في JS. على الرغم من أنه من الناحية الفنية كائن نوعي، إلا أنه يشبه الفراغ الفارغ من العدم. لذلك، نستبعد ذلك، فقط في حالة (على الرغم من أن المشكلة لم تذكر ذلك صراحة، فهي عادة جيدة).

  3. عناصر غير محددة وخالية: يمكن أن تحتوي كل من الكائنات والمصفوفات على خصائص/عناصر غير محددة أو فارغة. لكن لا تقلق، فسوف يتم احتسابها عندما نتحقق من الطول. لا يحصلون على تصريح مجاني من التحقق من الصحة لدينا!

  4. هل هي مصفوفة؟: يمكننا التحقق مما إذا كانت المعلمة مصفوفة باستخدام Array.isArray(obj). لا داعي للتحقق مرة أخرى مما إذا كان كائنًا أم لا، فقد فعلنا ذلك مسبقًا.

[كود الحل]

var isEmpty = function (obj) {
  if (typeof obj === "object" && obj !== null) { // Check if it's an object and not null
    if (Array.isArray(obj)) { // If it's an array
      return obj.length === 0; // Return true if it's empty
    } else { // If it's an object
      return Object.keys(obj).length === 0; // Return true if there are no keys
    }
  }
  return false; // If it's neither an object nor an array, return false
};

[كسرها...إلى أبعد من ذلك]

الخطوة 1: التحقق مما إذا كان كائنًا
أولاً، نستخدم typeof obj === 'object' && obj !== null للتأكد من أن الإدخال كائن وليس فارغًا. (لأننا نعلم جميعًا أن typeof null === 'object هو أحد المراوغات الغريبة في JavaScript. شكرًا، JavaScript!)

الخطوة 2: هل هي مصفوفة؟
نستخدم Array.isArray(obj) للتمييز بين المصفوفات والكائنات العادية. المصفوفات لها خاصية length، لذلك يمكننا التحقق مباشرة مما إذا كان obj.length === 0.

الخطوة 3: هل هو كائن؟
إذا لم يكن مصفوفة، فإننا نتحقق مما إذا كان كائنًا باستخدام Object.keys(obj).length === 0. تُرجع هذه الطريقة عدد المفاتيح في الكائن. لا مفاتيح؟ إنها فارغة!

الخطوة 4: الحالة الافتراضية
إذا لم يكن الإدخال كائنًا (أو كان فارغًا)، فإننا نعيد الخطأ لأن السؤال يحدد أننا نعمل مع الكائنات أو المصفوفات فقط.

بيان الافراج هذه المقالة مستنسخة على: https://dev.to/luvsense/leetcode-2727-is-object-empty-5h8k?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3