.github
api-server
client
config
curriculum
challenges
_meta
arabic
chinese
english
portuguese
01-responsive-web-design
02-javascript-algorithms-and-data-structures
basic-algorithm-scripting
basic-data-structures
basic-javascript
debugging
es6
functional-programming
add-elements-to-the-end-of-an-array-using-concat-instead-of-push.portuguese.md
apply-functional-programming-to-convert-strings-to-url-slugs.portuguese.md
avoid-mutations-and-side-effects-using-functional-programming.portuguese.md
combine-an-array-into-a-string-using-the-join-method.portuguese.md
combine-two-arrays-using-the-concat-method.portuguese.md
implement-map-on-a-prototype.portuguese.md
implement-the-filter-method-on-a-prototype.portuguese.md
introduction-to-currying-and-partial-application.portuguese.md
learn-about-functional-programming.portuguese.md
pass-arguments-to-avoid-external-dependence-in-a-function.portuguese.md
refactor-global-variables-out-of-functions.portuguese.md
remove-elements-from-an-array-using-slice-instead-of-splice.portuguese.md
return-a-sorted-array-without-changing-the-original-array.portuguese.md
return-part-of-an-array-using-the-slice-method.portuguese.md
sort-an-array-alphabetically-using-the-sort-method.portuguese.md
split-a-string-into-an-array-using-the-split-method.portuguese.md
understand-functional-programming-terminology.portuguese.md
understand-the-hazards-of-using-imperative-code.portuguese.md
use-the-every-method-to-check-that-every-element-in-an-array-meets-a-criteria.portuguese.md
use-the-filter-method-to-extract-data-from-an-array.portuguese.md
use-the-map-method-to-extract-data-from-an-array.portuguese.md
use-the-reduce-method-to-analyze-data.portuguese.md
use-the-some-method-to-check-that-any-elements-in-an-array-meet-a-criteria.portuguese.md
intermediate-algorithm-scripting
javascript-algorithms-and-data-structures-projects
object-oriented-programming
regular-expressions
03-front-end-libraries
04-data-visualization
05-apis-and-microservices
06-information-security-and-quality-assurance
08-coding-interview-prep
09-certificates
russian
spanish
formattingConversion
math-challenges
requiresTests
schema
test
.babelrc
.editorconfig
.npmignore
.travis.yml
CHANGELOG.md
LICENSE.md
commitizen.config.js
commitlint.config.js
create-challenge-bundle.js
getChallenges.js
gulpfile.js
index.js
lib.js
md-translation.js
package-entry.js
package-lock.json
package.json
utils.js
docs
guide
mock-guide
tools
.editorconfig
.eslintignore
.eslintrc.json
.gitattributes
.gitignore
.node-inspectorrc
.prettierrc
.snyk
.travis.yml
.vcmrc
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Dockerfile.tests
LICENSE.md
README.french.md
README.italian.md
README.md
azure-pipelines.yml
change_volumes_owner.sh
docker-compose-shared.yml
docker-compose.tests.yml
docker-compose.yml
lerna.json
libcimp_index_js.patch
package-lock.json
package.json
patch_npm_and_install.sh
sample.env
63 lines
3.5 KiB
Markdown
63 lines
3.5 KiB
Markdown
![]() |
---
|
||
|
id: 9d7123c8c441eeafaeb5bdef
|
||
|
title: Remove Elements from an Array Using slice Instead of splice
|
||
|
challengeType: 1
|
||
|
videoUrl: ''
|
||
|
localeTitle: Remover elementos de um array usando slice Em vez de splice
|
||
|
---
|
||
|
|
||
|
## Description
|
||
|
<section id="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 <code>splice</code> 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 <code>splice</code> altera o array original em que é chamado. Aqui está um exemplo: <blockquote> var cities = ["Chicago", "Delhi", "Islamabad", "Londres", "Berlim"]; <br> towns.splice (3, 1); // Retorna "Londres" e apaga da matriz de cidades <br> // cidades é agora ["Chicago", "Delhi", "Islamabad", "Berlin"] </blockquote> Como vimos no último desafio, o método <code>slice</code> 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 <code>slice</code> 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 <code>slice</code> , em vez de <code>splice</code> ajuda a evitar efeitos colaterais de alteração de matriz. </section>
|
||
|
|
||
|
## Instructions
|
||
|
<section id="instructions"> Reescreva a função <code>nonMutatingSplice</code> usando <code>slice</code> vez de <code>splice</code> . Ele deve limitar o array de <code>cities</code> 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. </section>
|
||
|
|
||
|
## Tests
|
||
|
<section id='tests'>
|
||
|
|
||
|
```yml
|
||
|
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(["Chicago", "Delhi", "Islamabad", "London", "Berlin"])</code> deve retornar <code>["Chicago", "Delhi", "Islamabad"]</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>.");'
|
||
|
|
||
|
```
|
||
|
|
||
|
</section>
|
||
|
|
||
|
## Challenge Seed
|
||
|
<section id='challengeSeed'>
|
||
|
|
||
|
<div id='js-seed'>
|
||
|
|
||
|
```js
|
||
|
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);
|
||
|
|
||
|
```
|
||
|
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
</section>
|
||
|
|
||
|
## Solution
|
||
|
<section id='solution'>
|
||
|
|
||
|
```js
|
||
|
// solution required
|
||
|
```
|
||
|
</section>
|