Finding A Good Deal pt-br Explainer

Explicação de Encontrar um bom negócio

Objetivo deste desafio: Usar o método .forEach() para encontrar o valor mínimo da array flightPrices.

Passo a passo da solução: As variáveis max e min começam a armazenando o 1º número da array. Elas precisam ser atualizadas para os maiores e menores valores da array. Isso pode ser feito usando as funções compareToMaximum e compareToMinimum. A função compareToMaximum pega um valor e verifica se ele é maior que o valor max atual. Se for, max é atualizado para esse novo valor, caso contrário permanece o mesmo. compareToMinimum faz uma coisa semelhante, mas verifica se o valor é menor do que o min atual. Tudo o que precisa acontecer é passar todos os valores da array através das 2 funções.

Em vez de um laço for, o método .forEach() pode ser usado. Quando .forEach() é aplicado a uma array, cada elemento da array é passado para a função retorno de chamada dada a .forEach(). Se você usar flightPrices.forEach(compareToMinimum), cada um dos elementos da array flightPrices será usado como entrada para compareToMinimum(). Essa função compareToMinimum() atualizará o valor da variável min.

Solução do código de exemplo:

(Toque abaixo para revelar)


import { flightPrices } from 'grasshopper.travel';

let max = flightPrices[0];

let min = flightPrices[0];

function compareToMaximum(value) {

max = value > max ? value : max;

}

function compareToMinimum(value) {

min = value < min ? value : min;

}

console.log(flightPrices);

flightPrices.forEach(compareToMaximum);

console.log('Maximum: ' + max);

flightPrices.forEach(compareToMinimum);

console.log('Minimum: ' + min);

Conceitos de JavaScript: Funções retorno de chamada, Funções de chamada, Bloco de código (função), console.log(), Condicionais (comando ternário), .forEach(), import

Código Adicional (código oculto executado antes do código do desafio):


let flightPrices= [...Array(6)].map(i => pickRandom(275)+125);

flightPrices.splice(pickRandom(6),0,Math.min(...flightPrices)-pickRandom(25));

Por que as funções compareToMaximum e compareToMinimun não necessitam de return?