freeCodeCamp/curriculum/challenges/portuguese/02-javascript-algorithms-an.../basic-data-structures/remove-items-using-splice.md

2.6 KiB

id title challengeType forumTopicId dashedName
587d78b2367417b2b2512b10 Remover itens usando splice() 1 301166 remove-items-using-splice

--description--

Ok, então aprendemos como remover elementos do início e do fim de arrays usando shift() e pop(), mas e se quisermos remover um elemento de algum lugar do meio? Ou remover mais de um elemento de uma vez? Bem, é aí que splice() pode ser útil. splice() nos permite fazer isso: remova qualquer número de elementos consecutivos de qualquer lugar no array.

splice pode receber 3 parâmetros, mas por agora, nós focaremos apenas nos 2 primeiros. Os dois primeiros parâmetros de splice() são inteiros que representam índices, ou posições, do array do qual o método splice() está sendo chamado. E lembre-se, arrays são indexados a zero, então para indicar o primeiro elemento do array, usaríamos 0. O primeiro parâmetro de splice() representa o índice no array do qual começar a remover elementos, enquanto o segundo parâmetro indica o número de elementos a serem removidos. Por exemplo:

let array = ['today', 'was', 'not', 'so', 'great'];

array.splice(2, 2);

Aqui nós removemos 2 elementos, começando com o terceiro elemento (no índice 2). array teria o valor ['today', 'was', 'great'].

splice() não apenas modifica o array do qual está sendo chamado, mas também retorna um novo array contendo os valores dos elementos removidos:

let array = ['I', 'am', 'feeling', 'really', 'happy'];

let newArray = array.splice(3, 2);

newArray tem o valor ['really', 'happy'].

--instructions--

Iniciamos um array arr. Use splice() para remover elementos do arr, para que apenas contenha elementos que somam ao valor de 10.

--hints--

Você não deve alterar a linha original: const arr = [2, 4, 5, 1, 7, 5, 2, 1];.

assert(
  __helpers.removeWhiteSpace(code).match(/constarr=\[2,4,5,1,7,5,2,1\];?/)
);

arr deve conter apenas elementos que somam a 10.

assert.strictEqual(
  arr.reduce((a, b) => a + b),
  10
);

Seu código deve utilizar o método splice() em arr.

assert(__helpers.removeWhiteSpace(code).match(/arr\.splice\(/));

O splice deve remover apenas os elementos de arr e não adicionar qualquer elemento adicional para arr.

assert(
  !__helpers.removeWhiteSpace(code).match(/arr\.splice\(\d+,\d+,\d+.*\)/g)
);

--seed--

--seed-contents--

const arr = [2, 4, 5, 1, 7, 5, 2, 1];
// Only change code below this line

// Only change code above this line
console.log(arr);

--solutions--

const arr = [2, 4, 5, 1, 7, 5, 2, 1];
arr.splice(1, 4);