i bandeja para construir la función para mostrar el número más alto y más bajo, pero entre 0 y 20
"use strict"; let scors = [50, 70, 60, 20, 15, 14, 12, 10, 9, 8, -5, 4, 16, 2, 17.5, 12.75]; function minMax(score) { let max = score[0]; let min = score[0]; for (let i = 0; i < score.length; i++) { if (score[i] < min && score[i] >= 0) { min = score[i]; } //this part dose not work if (score[i] > max && score[i] <= 20) { max = score[i]; } } console.log(max); console.log(min); } minMax(scors);Estas son las condiciones que aplicó, el puntaje actual debe ser mayor que el max y menor que 20 .
if (score[i] > max && score[i] <= 20) { max = score[i]; }Este es un ejemplo de la cuarta primera iteración.
input: 50 > max: 50input: 70 > max: 50input: 60 > max = 50input: 20 > max = 50En la cuarta iteración, el
maxno se asigna como20porque no es mayor que el máximo actual , que es 50.
Aquí está la solución simple:
score.sort(); para ordenar la matriz antes de comenzar a hacer un bucle.min con el último índice de la matriz. 'use strict'; let scors = [50, 70, 60, 20, 15, 14, 12, 10, 9, 8, -5, 4, 16, 2, 17.5, 12.75]; function minMax(score) { score.sort(); let max = score[0]; let min = score[score.length - 1]; for (let i = 0; i < score.length; i++) { if (score[i] < min && score[i] >= 0) { min = score[i]; } // This part now works! if (score[i] > max && score[i] <= 20) { max = score[i]; } } console.log(max); console.log(min); } minMax(scors);Para el rango de 0 a 20, puede limitar el mínimo y el máximo, lo que eliminaría la necesidad de ordenar la matriz.
Complejidad temporal O(N).
'use strict'; let scors = [50, 70, 60, 20, 15, 14, 12, 10, 9, 8, -5, 4, 16, 2, 17.5, 12.75]; function minMax(score) { let max = -1; let min = 21; for (let i = 0; i < score.length; i++) { if (score[i] < min && score[i] >= 0) { min = score[i]; } // This part now works! if (score[i] > max && score[i] <= 20) { max = score[i]; } } console.log(max); console.log(min); } minMax(scors);