--- id: 9d7123c8c441eeafaeb5bdef title: Remove Elements from an Array Using slice Instead of splice challengeType: 1 videoUrl: '' localeTitle: Удаление элементов из массива Использование среза Вместо сращивания --- ## Description
Обычный шаблон при работе с массивами - это когда вы хотите удалить элементы и сохранить остальную часть массива. JavaScript предлагает метод splice для этого, который принимает аргументы для индекса того, где следует начинать удаление элементов, а затем количество элементов для удаления. Если второй аргумент не указан, по умолчанию используется удаление элементов в конце. Однако метод splice мутирует исходный массив, на который он вызывается. Вот пример:
var cities = ["Чикаго", "Дели", "Исламабад", "Лондон", "Берлин"];
cities.splice (3, 1); // Возвращает «Лондон» и удаляет его из массива городов
// города теперь [«Чикаго», «Дели», «Исламабад», «Берлин»]
Как мы видели в последнем вызове, метод slice не мутирует исходный массив, а возвращает новый, который можно сохранить в переменной. Напомним, что метод slice принимает два аргумента, чтобы индексы начинались и заканчивались срезом (конец не включен) и возвращает эти элементы в новом массиве. Использование метода slice вместо splice помогает избежать любых побочных эффектов, связанных с массивом.
## Instructions
Перепишите функцию nonMutatingSplice , используя slice вместо splice . Он должен ограничивать массив предоставленных cities длиной до 3 и возвращать новый массив только с первыми тремя элементами. Не мутируйте исходный массив, предоставленный функции.
## Tests
```yml tests: - text: Ваш код должен использовать метод slice . testString: 'assert(code.match(/\.slice/g), "Your code should use the slice method.");' - text: Ваш код не должен использовать метод splice . testString: 'assert(!code.match(/\.splice/g), "Your code should not use the splice method.");' - text: Массив inputCities не должен изменяться. testString: 'assert(JSON.stringify(inputCities) === JSON.stringify(["Chicago", "Delhi", "Islamabad", "London", "Berlin"]), "The inputCities array should not change.");' - text: 'nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"]) должны вернуться ["Chicago", "Delhi", "Islamabad"] .' testString: 'assert(JSON.stringify(nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"])) === JSON.stringify(["Chicago", "Delhi", "Islamabad"]), "nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"]) should return ["Chicago", "Delhi", "Islamabad"].");' ```
## Challenge Seed
```js function nonMutatingSplice(cities) { // Add your code below this line return cities.splice(3); // Add your code above this line } var inputCities = ["Chicago", "Delhi", "Islamabad", "London", "Berlin"]; nonMutatingSplice(inputCities); ```
## Solution
```js // solution required ```