7.8 KiB
title | localeTitle |
---|---|
Everything Be True | كل شيء يكون حقيقة |
تذكر استخدام Read-Search-Ask
إذا واجهتك مشكلة. حاول إقران البرنامج واكتب الكود الخاص بك
شرح المشكلة:
يحتاج البرنامج إلى التحقق مما إذا كانت الوسيطة الثانية عنصر صواب ، ويجب أن يتحقق ذلك لكل كائن في الوسيطة الأولى.
روابط ذات صلة
تلميح: 1
تذكر أن تتكرر خلال الوسيطة الأولى للتحقق من كل كائن.
حاول أن تحل المشكلة الآن
تلميح: 2
فقط إذا كان كل منهم حقيقة فسوف نعود إلى الحقيقة ، لذا تأكد من التحقق منها جميعًا.
حاول أن تحل المشكلة الآن
تلميح: 3
حاول أن تحل المشكلة الآن
يمكنك استخدام وظائف الحلقات أو الاستدعاءات ، وهناك طرق متعددة لحل هذه المشكلة.
تنبيه المفسد!
الحلول في المستقبل!
الحل الأساسي للكود:
استخدام حلقة for-in & hasOwnProperty
`function truthCheck(collection, pre) { // Create a counter to check how many are true. var counter = 0; // Check for each object for (var c in collection) { // If it is has property and value is truthy if (collection[c].hasOwnProperty(pre) && Boolean(collection[c][pre])) { counter++; } } // Outside the loop, check to see if we got true for all of them and return true or false return counter == collection.length; }
// test here truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex"); `
شرح الشفرة:
- أولاً ، أقوم بإنشاء عداد للتحقق من عدد الحالات الواقعية.
- ثم تحقق من كل كائن إذا كانت القيمة صحيحة
- خارج الحلقة، وتحقق لمعرفة ما إذا كان المتغير العداد لديه نفس قيمة طول جمع وإذا كان هذا صحيحا ثم يعود صحيحا، وإلا، عودة كاذبة
روابط ذات صلة
حل الشفرة المتوسطة:
باستخدام Array.every ()
`function truthCheck(collection, pre) { return collection.every(function (element) { return element.hasOwnProperty(pre) && Boolean(element[pre]); }); }
// test here truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex"); `
شرح الشفرة:
- يستخدم الطريقة "every" الأصلية لاختبار ما إذا كانت جميع العناصر في الصفيف تجتاز الاختبار.
- سوف يساعد هذا الرابط Array.prototype.every ()
روابط ذات صلة
الحل المتقدم للكود:
`function truthCheck(collection, pre) { // Is everyone being true? return collection.every(obj => obj[pre]); }
truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex"); `
شرح الشفرة:
- لكل كائن في صفيف
collection
، تحقق من صحة خاصية الكائن التي تم تمريرها في المعلمةpre
Array#every
أسلوب يتحقق داخلياً إذا كانت القيمة التي يتم إرجاعها من رد الاتصال صحيحة.- إرجاع
true
إذا كان يمر لكل كائن. خلاف ذلك ، تعودfalse
.
روابط ذات صلة
ملاحظات للمساهمات:
- لا تقم بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
- أضف شرحًا لحلك.
- تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط والمتقدم .
- الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة . ( لا تزيل أي أسماء مستخدمين حالية )
نرى
Wiki Challenge Solution Template
كمرجع.