Nicanor13,
<script>
function ageMatrix (arr)
{ let c;
return arr.sort((a, b) => a - b).reduce((a, b, i) => {
if(!c || c.length == 4|| c.length >= 2 && (c[c.length - 1] + 4 < b || arr.slice(i).length == 2)) {
c = []; a.push(c)
}
c.push(b);
return a
}, [])
}
document.write(JSON.stringify(ageMatrix ([18, 30, 20, 45, 36, 20, 47, 50]), "", 1) + "<br>")
document.write(JSON.stringify(ageMatrix ([20, 22, 20, 22, 20, 23, 24, 25, 24, 24, 24]), "", 1) + "<br>")
document.write(JSON.stringify(ageMatrix ([18, 20, 22, 24, 26, 28, 30, 18, 18]), "", 1) + "<br>")
</script>