freeCodeCamp/curriculum/challenges/portuguese/02-javascript-algorithms-an.../basic-data-structures/check-for-the-presence-of-a...

94 lines
2.7 KiB
Markdown
Raw Normal View History

---
id: 587d7b7b367417b2b2512b14
2021-07-10 04:23:54 +00:00
title: Verifique a Presença de um Elemento com indexOf()
challengeType: 1
forumTopicId: 301154
dashedName: check-for-the-presence-of-an-element-with-indexof
---
# --description--
2021-07-10 04:23:54 +00:00
Já que arrays podem ser alterados, ou *mutadas*, a qualquer momentos, não há garantia de onde um pedaço de dado estará em um determinado array, ou se esse elemento se quer existe. Felizmente, JavaScript nos fornece com outro método embutido, `indexOf()`, que nos permite rapidamente e facilmente checar pela presença de um elemento em um array. `indexOf()` recebe um elemento como parâmetro, e quando chamado, retorna a posição, ou índice, daquele elemento, ou `-1` se o elemento não existe no array.
2021-07-10 04:23:54 +00:00
Por exemplo:
```js
let fruits = ['apples', 'pears', 'oranges', 'peaches', 'pears'];
fruits.indexOf('dates');
fruits.indexOf('oranges');
fruits.indexOf('pears');
```
2021-07-10 04:23:54 +00:00
`indexOf('dates')` retorna `-1`, `indexOf('oranges')` retorna `2` e `indexOf('pears')` retorna `1` (o primeiro índice no qual cada elemento existe).
# --instructions--
2021-07-10 04:23:54 +00:00
`indexOf()` pode ser incrivelmente útil para verificar rapidamente a presença de um elemento em um array. Definimos uma função, `quickCheck`, que recebe um array e um elemento como argumentos. Modifique a função usando `indexOf()` para que retorne `true` se o elemento passado existe no array, e`false` caso não exista.
# --hints--
2021-07-10 04:23:54 +00:00
A função `quickCheck` deve retornar um booleano (`true` ou `false`), e não uma string (`"true"` ou `"false"`)
```js
assert.isBoolean(quickCheck(['squash', 'onions', 'shallots'], 'mushrooms'));
```
2021-07-10 04:23:54 +00:00
`quickCheck(["squash", "onions", "shallots"], "mushrooms")` deve retornar `false`
```js
assert.strictEqual(
quickCheck(['squash', 'onions', 'shallots'], 'mushrooms'),
false
);
```
2021-07-10 04:23:54 +00:00
`quickCheck(["onions", "squash", "shallots"], "onions")` deve retornar `true`
```js
assert.strictEqual(
quickCheck(['onions', 'squash', 'shallots'], 'onions'),
true
);
```
2021-07-10 04:23:54 +00:00
`quickCheck([3, 5, 9, 125, 45, 2], 125)` deve retornar `true`
```js
assert.strictEqual(quickCheck([3, 5, 9, 125, 45, 2], 125), true);
```
2021-07-10 04:23:54 +00:00
`quickCheck([true, false, false], undefined)` deve retornar `false`
```js
assert.strictEqual(quickCheck([true, false, false], undefined), false);
```
2021-07-10 04:23:54 +00:00
A função `quickCheck` deve utilizar o método `indexOf()`
```js
assert.notStrictEqual(quickCheck.toString().search(/\.indexOf\(/), -1);
```
# --seed--
## --seed-contents--
```js
function quickCheck(arr, elem) {
// Only change code below this line
// Only change code above this line
}
console.log(quickCheck(['squash', 'onions', 'shallots'], 'mushrooms'));
```
# --solutions--
```js
function quickCheck(arr, elem) {
return arr.indexOf(elem) >= 0;
}
```