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"];Como vimos no último desafio, o método
towns.splice (3, 1); // Retorna "Londres" e apaga da matriz de cidades
// cidades é agora ["Chicago", "Delhi", "Islamabad", "Berlin"]
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. 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. slice
.
testString: 'assert(code.match(/\.slice/g), "Your code should use the slice
method.");'
- text: Seu código não deve usar o método de splice
.
testString: 'assert(!code.match(/\.splice/g), "Your code should not use the splice
method.");'
- text: A matriz inputCities
não deve ser alterada.
testString: 'assert(JSON.stringify(inputCities) === JSON.stringify(["Chicago", "Delhi", "Islamabad", "London", "Berlin"]), "The inputCities
array should not change.");'
- text: 'nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"])
deve retornar ["Chicago", "Delhi", "Islamabad"]
.'
testString: 'assert(JSON.stringify(nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"])) === JSON.stringify(["Chicago", "Delhi", "Islamabad"]), "nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"])
should return ["Chicago", "Delhi", "Islamabad"]
.");'
```