freeCodeCamp/curriculum/challenges/portuguese/02-javascript-algorithms-an.../functional-programming/remove-elements-from-an-arr...

3.5 KiB

id title challengeType videoUrl localeTitle
9d7123c8c441eeafaeb5bdef Remove Elements from an Array Using slice Instead of splice 1 Remover elementos de um array usando slice Em vez de splice

Description

Um padrão comum ao trabalhar com matrizes é quando você deseja remover itens e manter o restante da matriz. JavaScript oferece o método splice para isso, que leva argumentos para o índice de onde começar a remover itens e, em seguida, o número de itens a serem removidos. Se o segundo argumento não for fornecido, o padrão será remover itens até o final. No entanto, o método de splice altera o array original em que é chamado. Aqui está um exemplo:
var cities = ["Chicago", "Delhi", "Islamabad", "Londres", "Berlim"];
towns.splice (3, 1); // Retorna "Londres" e apaga da matriz de cidades
// cidades é agora ["Chicago", "Delhi", "Islamabad", "Berlin"]
Como vimos no último desafio, o método slice não altera o array original, mas retorna um novo que pode ser salvo em uma variável. Lembre-se de que o método de slice usa dois argumentos para os índices começarem e terminarem a fatia (o final não é inclusivo) e retorna esses itens em uma nova matriz. Usar o método de slice , em vez de splice ajuda a evitar efeitos colaterais de alteração de matriz.

Instructions

Reescreva a função nonMutatingSplice usando slice vez de splice . Ele deve limitar o array de cities fornecidas a um comprimento de 3 e retornar um novo array com apenas os três primeiros itens. Não mude o array original fornecido para a função.

Tests

tests:
  - text: Seu código deve usar o método de <code>slice</code> .
    testString: 'assert(code.match(/\.slice/g), "Your code should use the <code>slice</code> method.");'
  - text: Seu código não deve usar o método de <code>splice</code> .
    testString: 'assert(!code.match(/\.splice/g), "Your code should not use the <code>splice</code> method.");'
  - text: A matriz <code>inputCities</code> não deve ser alterada.
    testString: 'assert(JSON.stringify(inputCities) === JSON.stringify(["Chicago", "Delhi", "Islamabad", "London", "Berlin"]), "The <code>inputCities</code> array should not change.");'
  - text: '<code>nonMutatingSplice([&quot;Chicago&quot;, &quot;Delhi&quot;, &quot;Islamabad&quot;, &quot;London&quot;, &quot;Berlin&quot;])</code> deve retornar <code>[&quot;Chicago&quot;, &quot;Delhi&quot;, &quot;Islamabad&quot;]</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>.");'

Challenge Seed

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

// solution required