Solución
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