7.8 KiB
title | localeTitle |
---|---|
Drop it | أسقطها |
تذكر استخدام Read-Search-Ask
إذا واجهتك مشكلة. حاول إقران البرنامج واكتب الكود الخاص بك
شرح المشكلة:
بشكل أساسي بينما الوسيطة الثانية غير صحيحة ، يجب عليك إزالة العنصر الأول من يسار الصفيف الذي تم تمريره كوسيطة أولى.
روابط ذات صلة
تلميح: 1
يمكنك استخدام Array.prototype.shift()
أو التصفية التي يجب أن تكون أكثر دراية لحل هذه المشكلة في بضعة أسطر من التعليمات البرمجية.
حاول أن تحل المشكلة الآن
تلميح: 2
يُرجع مفتاح Shift العنصر الذي تمت إزالته والذي لا نحتاجه حقًا ، فكل ما نحتاجه هو الصفيف المعدَّل المتبقي.
حاول أن تحل المشكلة الآن
تلميح: 3
إذا كنت لا تزال غير قادر على معرفة كيفية حلها مع التحول ، ثم حاول حلها مع مرشح ، والتحقق من كيفية عمل مرشح ، إذا كنت على دراية به ، ثم يمكنك جعل رمز مع التحول.
حاول أن تحل المشكلة الآن
تنبيه المفسد!
الحل في المستقبل!
الحل الأساسي للكود:
`function dropElements(arr, func) { // drop them elements. var times = arr.length; for (var i = 0; i < times; i++) { if (func(arr[0])) { break; } else { arr.shift(); } } return arr; }
// test here dropElements([1, 2, 3, 4], function(n) {return n >= 3;}) `
شرح الشفرة:
- قم بإنشاء حلقة للتحقق من كل عنصر.
- ثم تحقق من الوظيفة المقدمة إذا كانت صحيحة ثم توقف ، وإلا قم بإزالة هذا العنصر.
- العودة الصفيف.
روابط ذات صلة
حل الشفرة المتوسطة:
`function dropElements(arr, func) { return arr.slice(arr.findIndex(func) >= 0 ? arr.findIndex(func): arr.length, arr.length); }
// test here dropElements([1, 2, 3, 4], function(n) {return n >= 3;}); `
شرح الشفرة:
- استخدم الدالة
findIndex()
للعثور على فهرس العنصر الذي يمرر الشرط - شريحة المصفوفة من فهرس وجدت حتى النهاية
- هناك حالة حافة واحدة! إذا لم يتم استيفاء الشرط ضد أي من العناصر 'findIndex' سيعود
-1
الذي يفسد الإدخال إلىslice()
. في هذه الحالة ، استخدم عامل تشغيل شرطي بسيط لإرجاعfalse
بدلاً من-1
. والمشغل الثلاثي (؟ إرجاع فهرس العثور على العناصر المطلوبة عندما يكون الشرطtrue
، وطول المصفوفة بطريقة أخرى بحيث تكون قيمة الإرجاع عبارة عن مصفوفة فارغة كما هو موضح.
روابط ذات صلة
الحل المتقدم للكود:
`function dropElements(arr, func) { while(arr.length > 0 && !func(arr[0])) { arr.shift(); } return arr; }
// test here dropElements([1, 2, 3, 4], function(n) {return n >= 3;}); `
شرح الشفرة
- استخدم حلقة
Array.prototype.shift()
معArray.prototype.shift()
لمتابعة التدقيق وإسقاط العنصر الأول من الصفيف حتى ترجع الدالة true. كما أنه يتأكد من أن المصفوفة ليست فارغة أولاً لتجنب حلقات لا نهائية. - أعد الصفيف الذي تمت تصفيته.
روابط ذات صلة
ملاحظات للمساهمات:
- لا تقم بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
- أضف شرحًا لحلك.
- تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط والمتقدم .
- الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة . ( لا تزيل أي أسماء مستخدمين حالية )
نرى
Wiki Challenge Solution Template
كمرجع.