Explicação de Sem nozes
Objetivo deste desafio: Usar o método de array .filter()
para criar uma nova array que contenha apenas certos itens de outra array.
Passo a passo da solução: O método .filter()
usa uma função como argumento (também conhecido como função retorno de chamada) e faz a iteração pela array usando cada item como argumento para o retorno de chamada (ou teste). Se o retorno de chamada for verdadeiro para um item, então esse item passou no teste e é copiado para uma nova array. A array original não é modificada.
A primeira linha de código importa uma array de código adicional, iceCreams
, para que possa ser usada neste desafio.
Em seguida, a função nutAllergy
é declarada. Ela usa um argumento, flavor
e retorna esse sabor se não for 'pistachio'
. Esta função é o retorno de chamada/teste que usaremos no método .filter()
mais tarde em nosso código.
Abaixo da função nutAllergy
, a variável nutFree
é declarada. No código com o qual você começa, nutFree
é o mesmo que a array iceCreams
. Neste desafio, você usará o método .filter()
para transformar nutFree
em uma array de sabores de iceCreams
que passam no teste nutFree
.
Para concluir o desafio, adicione o método .filter(nutAllergy)
após iceCreams
. Agora, a array nutFree
conterá apenas itens da array iceCreams
que passarem no teste nutFree
.
Após a declaração de variável nutFree
, o laço for...of
registrará cada item da array nutFree
no console. Sem este código, não seríamos capazes de ver a mudança de uma array iceCreams
não filtrada para uma array filtrada para excluir 'pistachio'
.
Solução do código de exemplo:
(Toque abaixo para revelar)
import { iceCreams } from 'grasshopper.treats';
function nutAllergy(flavor) {
return flavor !== 'pistachio';
}
let nutFree = iceCreams.filter(nutAllergy);
for (let flavors of nutFree) {
console.log(flavors);
}
Conceitos de JavaScript: Métodos de array, .filter()
, Declarações de variável com let, Laço for…of, Declarações de função, Importações, console.log()
Código Adicional (código oculto executado antes do código do desafio):
let iceCreams = ['vanilla', 'chocolate', 'cookies and cream', 'cookie dough', 'mint chocolate chip', 'pistachio', 'coffee']