4.5 KiB
4.5 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
9d7123c8c441eeafaeb5bdef | Remove Elements from an Array Using slice Instead of splice | 1 | Удаление элементов из массива используя slice вместо splice |
Описание
splice
, который принимает индекс того, где следует начинать удаление элементов, и количество элементов для удаления. Если второй аргумент не указан, по умолчанию удаляются элементы до конца массива. Однако метод splice
мутирует исходный массив, на котором он вызывается. Вот пример: var cities = ["Чикаго", "Дели", "Исламабад", "Лондон", "Берлин"];Как мы видели в последней задаче, метод
cities.splice (3, 1); // Возвращает «Лондон» и удаляет его из массива городов
// города теперь [«Чикаго», «Дели», «Исламабад», «Берлин»]
slice
не мутирует исходный массив, а возвращает новый, который можно сохранить в переменной. Напомним, что метод slice
принимает два аргумента - индексы начала и канца среза (конец не включен) и возвращает эти элементы в новом массиве. Использование метода slice
вместо splice
помогает избежать любых побочных эффектов, связанных с массивом. Указания
nonMutatingSplice
, используя slice
вместо splice
. Он должен ограничивать массив предоставленных cities
длиной до 3 и возвращать новый массив только с первыми тремя элементами. Не мутируйте исходный массив, предоставленный функции. Тесты
tests:
- text: Ваш код должен использовать метод <code>slice</code> .
testString: 'assert(code.match(/\.slice/g), "Your code should use the <code>slice</code> method.");'
- text: Ваш код не должен использовать метод <code>splice</code> .
testString: 'assert(!code.match(/\.splice/g), "Your code should not use the <code>splice</code> method.");'
- text: Массив <code>inputCities</code> не должен изменяться.
testString: 'assert(JSON.stringify(inputCities) === JSON.stringify(["Chicago", "Delhi", "Islamabad", "London", "Berlin"]), "The <code>inputCities</code> array should not change.");'
- text: '<code>nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"])</code> должны вернуться <code>["Chicago", "Delhi", "Islamabad"]</code> .'
testString: 'assert(JSON.stringify(nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"])) === JSON.stringify(["Chicago", "Delhi", "Islamabad"]), "<code>nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"])</code> should return <code>["Chicago", "Delhi", "Islamabad"]</code>.");'
Исходные данные
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 required