5.5 KiB
title | localeTitle |
---|---|
Slice and Splice | شريحة و لصق |
شريحة و لصق
تذكر استخدام Read-Search-Ask
إذا واجهتك مشكلة. حاول إقران البرنامج واكتب الكود الخاص بك
شرح المشكلة:
نحتاج إلى نسخ كل عنصر من المصفوفة الأولى إلى المصفوفة الثانية بدءًا من الفهرس n. علينا أيضا أن نتأكد من أن المصفوفات الأصلية ليست متحولة. بمعنى ، لا يمكننا إجراء أي تغييرات على المصفوفات الأصلية.
روابط ذات صلة
تلميح: 1
قم بإنشاء نسخة من المصفوفة الثانية داخل الدالة. سيضمن ذلك عدم تحوّل الصفيف الأصلي. يمكن القيام بذلك عن طريق استخدام عملية الشريحة في الصفيف الثاني ، وتعيينه إلى متغير.
حاول أن تحل المشكلة الآن
تلميح: 2
قم بالالتفاف عبر كافة العناصر في الصفيف الأول. لكل عنصر في الصفيف الأول لصقه في المصفوفة المنسوخة في الفهرس المعطى كوسيطة.
حاول أن تحل المشكلة الآن
تلميح: 3
زيادة المؤشر بعد إجراء لصق.
حاول أن تحل المشكلة الآن
تنبيه المفسد!
الحل في المستقبل!
الحل الأساسي للكود:
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; }
شرح الشفرة:
-
هدفنا هو أخذ جميع العناصر من
arr1
وإدخالها فيarr2
بدءًا من وضع الفهرسn
. في نفس الوقت يجب علينا أن ensurethat لاarr
أوarr2
تم تحور. -
باستخدام الدالة
slice()
يمكننا إنشاء نسخة طبق الأصل منarr2
بدقة وتعيين نتيجة العملية إلى متغير ،localArray
. -
والآن بعد أن أصبح لدينا مجموعة يمكننا التحور عليها ، يمكننا التكرار من خلال كل عنصر في الصفيف الأول. لكل عنصر في الصفيف الأول يمكننا استخدام الدالة
splice()
لإدراج العنصر في فهرسn
منlocalArray
. -
نحن زيادة مؤشر
n
تلو الآخر. سيضمن هذا أن كل عنصر منarr1
يتم إدخاله فيlocalArray
في موضع الفهرس الصحيح. -
وأخيرًا ، نعود إلى
localArray
الوظيفة.
ملاحظات للمساهمات:
- لا تقم بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
- أضف شرحًا لحلك.
- تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط والمتقدم .
- الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة . ( لا تزيل أي أسماء مستخدمين حالية )
نرى
Wiki Challenge Solution Template
كمرجع.