Finding a Good Deal es-419 Explainer

Explicador de En busca de una buena oferta

Objetivo de este acertijo: Usar el método .forEach() para encontrar el valor mínimo del arreglo flightPrices.

Tutorial de la solución: Las variables max y min comienzan con almacenar el primer número en el arreglo. Estas variables necesitan ser actualizados a los valores más grandes y más pequeños en el arreglo. Esto se puede hacer con las funciones compareToMaximum y compareToMinimum. La función compareToMaximum toma un valor y verifica si es mayor que el valor max actual. Si lo es, entonces max se actualiza a ese nuevo valor; de lo contrario se mantiene igual. compareToMinimum hace algo similar, pero verifica si el valor es menor que el valor min actual. Todo lo que debe suceder es ejecutar todos los valores del arreglo por las 2 funciones.

En vez de usar un for loop, se puede usar el método .forEach(). Cuando se aplica .forEach() a un arreglo, cada elemento del arreglo se pasa a la función de devolución de llamada dada a .forEach(). Si usas flightPrices.forEach(compareToMinimum), entonces cada uno de los elementos del arreglo flightPrices se usará como la entrada para compareToMinimum(). Esa función compareToMinimum() actualizará el valor de la variable min.

Solución del código de ejemplo:

(Pulsa a continuación 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);

Conceptos de JavaScript: funciones de devolución de llamada, funciones de llamada, bloque de función (función), console.log(), condicionales (declaración ternaria), .forEach(), import

Código adicional (código oculto que se ejecuta antes del código del acertijo):


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

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

1 Like