Tengo el siguiente código que intenta establecer un valor en un mapa:
class Trie { constructor () { this.trie = new Map() } insert(word) { let current = this.trie for (let alpha of word) { if (!current.has(alpha)) current.set(alpha, []) current = current.get(alpha) } current.word = word } } let trie = new Trie() trie.insert('test') console.log(trie.trie) Cuando intento ejecutarlo, aparece el error .has is not a function . ¿Que me estoy perdiendo aqui?
Está reasignando current a un valor que no es de mapa dentro del bucle, por lo que en iteraciones posteriores, current.has no funcionará. Parece que necesita cambiar el [] a un new Map en su lugar.
class Trie { constructor () { this.trie = new Map() } insert(word) { let current = this.trie for (let alpha of word) { if (!current.has(alpha)) current.set(alpha, new Map()) current = current.get(alpha) } current.word = word } } let trie = new Trie() trie.insert('test') console.log([...trie.trie])