102 lines
5.9 KiB
Markdown
102 lines
5.9 KiB
Markdown
![]() |
---
|
|||
|
title: Mutations
|
|||
|
localeTitle: الطفرات
|
|||
|
---
|
|||
|
 تذكر استخدام **`Read-Search-Ask`** إذا واجهتك مشكلة. حاول إقران البرنامج  واكتب الكود الخاص بك 
|
|||
|
|
|||
|
###  شرح المشكلة:
|
|||
|
|
|||
|
* إرجاع true إذا احتوت السلسلة في العنصر الأول من المصفوفة على كافة أحرف السلسلة في العنصر الثاني من المصفوفة.
|
|||
|
|
|||
|
#### روابط ذات صلة
|
|||
|
|
|||
|
* [String.indexOf ()](http://forum.freecodecamp.com/t/javascript-string-prototype-indexof/15936)
|
|||
|
|
|||
|
##  تلميح: 1
|
|||
|
|
|||
|
* إذا كان كل شيء صغيرًا ، فسيكون من الأسهل مقارنته.
|
|||
|
|
|||
|
> _حاول أن تحل المشكلة الآن_
|
|||
|
|
|||
|
##  تلميح: 2
|
|||
|
|
|||
|
* قد يكون من السهل التعامل مع سلاسلنا إذا كانت صفائف الأحرف.
|
|||
|
|
|||
|
> _حاول أن تحل المشكلة الآن_
|
|||
|
|
|||
|
##  تلميح: 3
|
|||
|
|
|||
|
* حلقة قد تساعد. استخدم `indexOf()` للتحقق مما إذا كان حرف الكلمة الثانية موجودًا على الأول.
|
|||
|
|
|||
|
> _حاول أن تحل المشكلة الآن_
|
|||
|
|
|||
|
## تنبيه المفسد!
|
|||
|
|
|||
|

|
|||
|
|
|||
|
**الحل في المستقبل!**
|
|||
|
|
|||
|
##  الحل الأساسي للكود:
|
|||
|
|
|||
|
**إجرائي**
|
|||
|
|
|||
|
`function mutation(arr) {
|
|||
|
var test = arr[1].toLowerCase();
|
|||
|
var target = arr[0].toLowerCase();
|
|||
|
for (var i=0;i<test.length;i++) {
|
|||
|
if (target.indexOf(test[i]) < 0)
|
|||
|
return false;
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
`
|
|||
|
|
|||
|
 [تشغيل الكود](https://repl.it/CLjU/30)
|
|||
|
|
|||
|
### شرح الشفرة:
|
|||
|
|
|||
|
أولاً ، نصنع السمتين في المصفوفة الصغيرة. `test` سيعقد ما نبحث عنه في `target` .
|
|||
|
ثم نتعقب من خلال شخصيات الاختبار الخاصة بنا وإذا لم يتم العثور على أي منها `return false` .
|
|||
|
|
|||
|
إذا تم العثور عليهم _جميعًا_ ، ستنتهي الحلقة دون إرجاع أي شيء `return true` إلى `return true` .
|
|||
|
|
|||
|
#### روابط ذات صلة
|
|||
|
|
|||
|
* [String.toLowerCase ()](http://forum.freecodecamp.com/t/javascript-string-prototype-tolowercase/15948)
|
|||
|
* [للحلقات](http://forum.freecodecamp.com/t/javascript-for-loop/14666s-Explained)
|
|||
|
|
|||
|
##  حل الشفرة المتوسطة:
|
|||
|
|
|||
|
**إعلاني**
|
|||
|
|
|||
|
`function mutation(arr) {
|
|||
|
return arr[1].toLowerCase()
|
|||
|
.split('')
|
|||
|
.every(function(letter) {
|
|||
|
return arr[0].toLowerCase()
|
|||
|
.indexOf(letter) != -1;
|
|||
|
});
|
|||
|
}
|
|||
|
`
|
|||
|
|
|||
|
 [تشغيل الكود](https://repl.it/CLjU/31)
|
|||
|
|
|||
|
### شرح الشفرة:
|
|||
|
|
|||
|
اسحب السلسلة الثانية ، صغيرة وتحويلها إلى صفيف. ثم تأكد من أن _كل_ واحد من _أحرفه_ هو جزء من السلسلة الأولى الأقل تدقيقًا.
|
|||
|
|
|||
|
`Every` سيعطي أساسا لكم حرفا حرفا للمقارنة، وهو ما كنا نفعله باستخدام `indexOf` على السلسلة الأولى. سوف تعطيك `indexOf` -1 إذا كان `letter` الحالي مفقودًا. نتحقق من أن لا يكون الأمر كذلك ، لأنه إذا حدث هذا مرة واحدة فسيكون `every` خطأ.
|
|||
|
|
|||
|
#### روابط ذات صلة
|
|||
|
|
|||
|
* [Array.split ()](http://forum.freecodecamp.com/t/javascript-string-prototype-split/15944)
|
|||
|
* [Array.every ()](http://forum.freecodecamp.com/t/javascript-array-prototype-every/14287)
|
|||
|
|
|||
|
##  ملاحظات للمساهمات:
|
|||
|
|
|||
|
*  **لا تقم** بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها **_مشابهة ولكن أفضل_** ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
|
|||
|
* أضف شرحًا لحلك.
|
|||
|
* تصنيف الحل في واحدة من الفئات التالية - **الأساسي** **والمتوسط** **والمتقدم** . 
|
|||
|
* الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي **محتويات رئيسية ذات صلة** . (  **_لا_** _تزيل أي أسماء مستخدمين حالية_ )
|
|||
|
|
|||
|
> نرى  [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) كمرجع.
|