102 lines
6.9 KiB
Markdown
102 lines
6.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` .
|
|||
|
|
|||
|
#### Связанные ссылки
|
|||
|
|
|||
|
* [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)
|
|||
|
|
|||
|
##  ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
|
|||
|
|
|||
|
*  **НЕ** добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это **_похоже, но лучше_** , попробуйте объединить (или заменить) существующее подобное решение.
|
|||
|
* Добавьте объяснение своего решения.
|
|||
|
* Классифицируйте решение в одной из следующих категорий - **Basic** , **Intermediate** и **Advanced** . 
|
|||
|
* Пожалуйста, добавьте свое имя пользователя, только если вы добавили **соответствующее основное содержимое** . (  **_НЕ_** _удаляйте существующие имена пользователей_ )
|
|||
|
|
|||
|
> Видеть  [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для справки.
|