freeCodeCamp/guide/arabic/certifications/javascript-algorithms-and-d.../basic-algorithm-scripting/slice-and-splice/index.md

5.5 KiB

title localeTitle
Slice and Splice شريحة و لصق

شريحة و لصق

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

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

نحتاج إلى نسخ كل عنصر من المصفوفة الأولى إلى المصفوفة الثانية بدءًا من الفهرس n. علينا أيضا أن نتأكد من أن المصفوفات الأصلية ليست متحولة. بمعنى ، لا يمكننا إجراء أي تغييرات على المصفوفات الأصلية.

روابط ذات صلة

:speech_balloon: تلميح: 1

قم بإنشاء نسخة من المصفوفة الثانية داخل الدالة. سيضمن ذلك عدم تحوّل الصفيف الأصلي. يمكن القيام بذلك عن طريق استخدام عملية الشريحة في الصفيف الثاني ، وتعيينه إلى متغير.

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

:speech_balloon: تلميح: 2

قم بالالتفاف عبر كافة العناصر في الصفيف الأول. لكل عنصر في الصفيف الأول لصقه في المصفوفة المنسوخة في الفهرس المعطى كوسيطة.

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

:speech_balloon: تلميح: 3

زيادة المؤشر بعد إجراء لصق.

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

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

علامة تحذير

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

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

function frankenSplice(arr1, arr2, n) { // It's alive. It's alive! let localArray = arr2.slice(); for (let i = 0; i < arr1.length; i++) { localArray.splice(n, 0, arr1[i]); n++; } return localArray; }

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

شرح الشفرة:

  • هدفنا هو أخذ جميع العناصر من arr1 وإدخالها في arr2 بدءًا من وضع الفهرس n . في نفس الوقت يجب علينا أن ensurethat لا arr أو arr2 تم تحور.

  • باستخدام الدالة slice() يمكننا إنشاء نسخة طبق الأصل من arr2 بدقة وتعيين نتيجة العملية إلى متغير ، localArray .

  • والآن بعد أن أصبح لدينا مجموعة يمكننا التحور عليها ، يمكننا التكرار من خلال كل عنصر في الصفيف الأول. لكل عنصر في الصفيف الأول يمكننا استخدام الدالة splice() لإدراج العنصر في فهرس n من localArray .

  • نحن زيادة مؤشر n تلو الآخر. سيضمن هذا أن كل عنصر من arr1 يتم إدخاله في localArray في موضع الفهرس الصحيح.

  • وأخيرًا ، نعود إلى localArray الوظيفة.

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

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

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