Escribí un código con condición y para mí tengo muchas repeticiones de código similar. ¿Puedo hacer que este código sea más eficiente con un refactor? Después de investigar un poco, eso es lo mejor que puedo hacer, es solo una parte del código, no todo el https://codepen.io/manofthelake/pen/GRyMzgW?editors=1010
const firstNumber = 50 const lastNumber = 1000 const defaultMinNumber = firstNumber + Math.round((lastNumber - firstNumber) / 2 ) const selection = { min: null max: null } if (Object.values(selection).every(s => s === null)) { selection.min = defaultMinNumber selection.max = lastNumber } else if (selection.min < firstNumber) { savedSelection = {...selection} selection.min = (selection.max > firstNumber) ? firstNumber: defaultMinNumber selection.max = (selection.max > firstNumber) ? selection.max : lastNumber } else if (Object.values(savedSelection).every(s => s !== null)) { selection.min = (savedSelection.max > firstNumber) ? selection.min : defaultMinNumber selection.max = (savedSelection.max > firstNumber) ? selection.max : lastNumber }Observaciones/Refactorización :
¿Cuál es la diferencia entre lastNumber y defaultMinNumber ya que ambos devolverán el mismo valor? Parece que algo se ha perdido en ese cálculo.
En lugar de un bucle en todos y cada uno de los elementos, puede usar el operador coalescente nulo (??) que devuelve su operando del lado derecho cuando su operando del lado izquierdo es nulo o indefinido, y de lo contrario devuelve su operando del lado izquierdo.
selection.min ?? defaultMinNumber selection.max ?? lastNumber