Estoy tratando de entender cómo funciona el siguiente código:
Por cierto, esta es una solución de este problema :
function getPINs(observed) { return observed.split('') .map( t => ({ '0': [ '0', '8' ], '1': [ '1', '2', '4' ], '2': [ '1', '2', '3', '5' ], '3': [ '2', '3', '6' ], '4': [ '1', '4', '5', '7' ], '5': [ '2', '4', '5', '6', '8' ], '6': [ '3', '5', '6', '9' ], '7': [ '4', '7', '8' ], '8': [ '5', '7', '8', '9', '0' ], '9': [ '6', '8', '9' ] }[t])) .reduce((pre, cur)=> [].concat.apply([], pre.map(t => cur.map(g => t + g)))); }cuando elimino el método concat del código, el resultado es inesperadamente diferente, como ejemplo, pensé que el resultado sin concat al llamar a getPINs(456) es [['123'],['125'], ...] en su lugar de [123, 125, ...]