Quiero intentar hacer mi propia función. Quiero ordenar una matriz de caracteres en orden creciente y devolver el recuento de ocurrencias de cada carácter como un número compacto.
Ejemplo:
function numberRepresentation(arr) { // arr is an array // return a number /* ex. arr=[b,a,a,a,c,b,a] after sorting array will look like arr=[a,a,a,a,b,b,c] occurrence of characters -> a = 4, b = 2, c = 1 so output will be 421 */ }¿Cómo puedo hacerlo?
function numberRepresentation(arr) { return arr.reduce((counts, letter) => { const code = letter.charCodeAt(0) counts[code] = counts[code] + 1 || 1 return counts }, []).join('') }Explicación:
Solo contamos la ocurrencia de cada letra, pero usamos un Array simple y códigos char como índices. Por lo tanto, obtenemos automáticamente una lista de recuentos de letras ordenadas alfabéticamente (porque los códigos char van en orden abc). Entonces, todo lo que tenemos que hacer es concatenar todos los conteos y regresar.