Files
freeCodeCamp/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/functional-programming/remove-elements-from-an-array-using-slice-instead-of-splice.md

3.7 KiB
Raw Permalink Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
9d7123c8c441eeafaeb5bdef Видалення елементів з масиву з використанням slice замість splice 1 301236 remove-elements-from-an-array-using-slice-instead-of-splice

--description--

Загальним шаблоном під час роботи з масивами є те, коли ви хочете видалити елементи й зберегти решту масиву. JavaScript пропонує для цього метод « splice», який приймає аргументи для індексу, де саме починати видаляти елементи, а тоді — їх кількість. Якщо другий аргумент не було надано, то, за замовчуванням, елементи видаляються до кінця. Щоправда, метод «splice» змінює оригінальний масив, у якому викликається. Ось приклад:

const cities = ["Chicago", "Delhi", "Islamabad", "London", "Berlin"];
cities.splice(3, 1);

Тут splice повертає рядок London і видаляє його із масиву міст. cities матимуть значення ["Chicago", "Delhi", "Islamabad", "Berlin"].

Як ми могли бачити у останньому завдання, метод «slice» не змінює вихідного масиву, але повертає новий, який може бути збережений як змінний. Пригадайте, що метод «slice» використовує два аргументи для того, щоб індекси почали та закінчили slice (кінець не включається); і повертає ці елементи у новий масив. Використання методу «slice» замість «splice» допомагає уникнути будь-яких побічних дій зміни масиву.

--instructions--

Перепишіть функцію nonMutatingSplice, використовуючи slice замість splice. Він мусить обмежити наданий масив cities до довжини 3, і повернути новий масив лише із першими трьома елементами.

Не змінюйте вихідний масив, наданий функцією.

--hints--

Використовуйте метод «slice» у своєму коді.

assert(code.match(/\.slice/g));

Не використовуйте метод «splice» у своєму коді.

assert(!code.match(/\.?[\s\S]*?splice/g));

Масив inputCities не повинен змінюватись.

assert(
  JSON.stringify(inputCities) ===
    JSON.stringify(['Chicago', 'Delhi', 'Islamabad', 'London', 'Berlin'])
);

nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"]) повинен повертатися як ["Chicago", "Delhi", "Islamabad"].

assert(
  JSON.stringify(
    nonMutatingSplice(['Chicago', 'Delhi', 'Islamabad', 'London', 'Berlin'])
  ) === JSON.stringify(['Chicago', 'Delhi', 'Islamabad'])
);

--seed--

--seed-contents--

function nonMutatingSplice(cities) {
  // Only change code below this line
  return cities.splice(3);

  // Only change code above this line
}

const inputCities = ["Chicago", "Delhi", "Islamabad", "London", "Berlin"];
nonMutatingSplice(inputCities);

--solutions--

function nonMutatingSplice(cities) {
  return cities.slice(0,3);
}
const inputCities = ["Chicago", "Delhi", "Islamabad", "London", "Berlin"];