freeCodeCamp/guide/arabic/certifications/javascript-algorithms-and-d.../intermediate-algorithm-scri.../drop-it/index.md

7.8 KiB

title localeTitle
Drop it أسقطها

:triangular_flag_on_post: تذكر استخدام Read-Search-Ask إذا واجهتك مشكلة. حاول إقران البرنامج :busts_in_silhouette: واكتب الكود الخاص بك :pencil:

:checkered_flag: شرح المشكلة:

بشكل أساسي بينما الوسيطة الثانية غير صحيحة ، يجب عليك إزالة العنصر الأول من يسار الصفيف الذي تم تمريره كوسيطة أولى.

روابط ذات صلة

:speech_balloon: تلميح: 1

يمكنك استخدام Array.prototype.shift() أو التصفية التي يجب أن تكون أكثر دراية لحل هذه المشكلة في بضعة أسطر من التعليمات البرمجية.

حاول أن تحل المشكلة الآن

:speech_balloon: تلميح: 2

يُرجع مفتاح Shift العنصر الذي تمت إزالته والذي لا نحتاجه حقًا ، فكل ما نحتاجه هو الصفيف المعدَّل المتبقي.

حاول أن تحل المشكلة الآن

:speech_balloon: تلميح: 3

إذا كنت لا تزال غير قادر على معرفة كيفية حلها مع التحول ، ثم حاول حلها مع مرشح ، والتحقق من كيفية عمل مرشح ، إذا كنت على دراية به ، ثم يمكنك جعل رمز مع التحول.

حاول أن تحل المشكلة الآن

تنبيه المفسد!

علامة تحذير

الحل في المستقبل!

:beginner: الحل الأساسي للكود:

`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;}) `

:rocket: تشغيل الكود

شرح الشفرة:

  • قم بإنشاء حلقة للتحقق من كل عنصر.
  • ثم تحقق من الوظيفة المقدمة إذا كانت صحيحة ثم توقف ، وإلا قم بإزالة هذا العنصر.
  • العودة الصفيف.

روابط ذات صلة

:sunflower: حل الشفرة المتوسطة:

`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;}); `

:rocket: تشغيل الكود

شرح الشفرة:

  • استخدم الدالة findIndex() للعثور على فهرس العنصر الذي يمرر الشرط
  • شريحة المصفوفة من فهرس وجدت حتى النهاية
  • هناك حالة حافة واحدة! إذا لم يتم استيفاء الشرط ضد أي من العناصر 'findIndex' سيعود -1 الذي يفسد الإدخال إلى slice() . في هذه الحالة ، استخدم عامل تشغيل شرطي بسيط لإرجاع false بدلاً من -1 . والمشغل الثلاثي (؟ :slight_smile: إرجاع فهرس العثور على العناصر المطلوبة عندما يكون الشرط true ، وطول المصفوفة بطريقة أخرى بحيث تكون قيمة الإرجاع عبارة عن مصفوفة فارغة كما هو موضح.

روابط ذات صلة

:rotating_light: الحل المتقدم للكود:

`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;}); `

:rocket: تشغيل الكود

شرح الشفرة

  • استخدم حلقة Array.prototype.shift() مع Array.prototype.shift() لمتابعة التدقيق وإسقاط العنصر الأول من الصفيف حتى ترجع الدالة true. كما أنه يتأكد من أن المصفوفة ليست فارغة أولاً لتجنب حلقات لا نهائية.
  • أعد الصفيف الذي تمت تصفيته.

روابط ذات صلة

:clipboard: ملاحظات للمساهمات:

  • :warning: لا تقم بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
  • أضف شرحًا لحلك.
  • تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط والمتقدم . :traffic_light:
  • الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة . ( :warning: لا تزيل أي أسماء مستخدمين حالية )

نرى :point_right: Wiki Challenge Solution Template كمرجع.