2.6 KiB
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d78b2367417b2b2512b10 | Remover itens usando splice() | 1 | 301166 | remove-items-using-splice |
--description--
Pois bem. 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: remover 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. 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 a mais 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);