Estoy trabajando para resolver un problema de Anagram, quería ser inteligente con los métodos de Javascript
aquí está mi código
const stringA = ["hello"] const stringB = ["olhle"] let cleanStrA = stringA.replace(/[^\w]/g, '').toLowerCase().split('') let cleanStrB = stringB.replace(/[^\w]/g, '').toLowerCase().split('') function charMap (str) { str.reduce((acc, cur) => { acc[cur] = acc[cur] + 1 || 1 return acc },{}) return str } let buildCharMapA = charMap(cleanStrA) let buildCharMapB = charMap(cleanStrB) console.log(buildCharMapA) result = ("hello")Cuando registro esto en la consola, devuelve la matriz original, pero cuando elimino la función que abarca el método de reducción, crea el objeto deseado.
let reduceFn = cleanStrA.reduce((acc, cur) => { acc[cur] = acc[cur] + 1 || 1 return acc },{}) console.log(reduceFn) result = {h:1, e:1, etc.}¿Lo que da?
Como señalaron los comentarios, devolví str por error en lugar de toda la función de reducción
function charMap (str) { return str.reduce((acc, cur) => { acc[cur] = acc[cur] + 1 || 1 return acc },{}) }