Solución

@juanlopezdev·4/6/2026TypeScript
solution.tsTypeScript
function groupByRange(numbers: number[], rangeSize: number): Record<string, number[]> {
  if (rangeSize < 0) return {}
  let min = 0
  let max = rangeSize
  let values = {}

  const largerNumber = Math.max(...numbers)
  const nBlocks = Math.ceil((largerNumber + 1) / rangeSize)

  for (let x = 0; x < nBlocks; x++) {
    values[`${min}-${max}`] = []
    min = max
    max = max + rangeSize
  }

  Object.keys(values).forEach(key => {
    const rangeMinMax = key.split('-')
    const rangeMinNumber = parseInt(rangeMinMax[0])
    const rangeMaxNumber = parseInt(rangeMinMax[1])

    let rangeValues = []

    numbers.forEach(n => {
      if (n >= rangeMinNumber && n < rangeMaxNumber) {
          rangeValues.push(n)
      }
    })

    if (rangeValues.length === 0)
      delete values[key]
    else
      values[key] = rangeValues
  })

  console.log(values)
  return values;
}

// No modificar: necesario para evaluar el resultado.
export { groupByRange };
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.