@@ -2,35 +2,31 @@ export default class TrieNode {
22 constructor ( character , isCompleteWord = false ) {
33 this . character = character ;
44 this . isCompleteWord = isCompleteWord ;
5- this . children = { } ;
5+ this . children = new Map ( ) ;
66 }
77
88 getChild ( character ) {
9- if ( ! Object . prototype . hasOwnProperty . call ( this . children , character ) ) {
10- return null ;
11- }
12-
13- return this . children [ character ] ;
9+ return this . children . get ( character ) ;
1410 }
1511
1612 addChild ( character , isCompleteWord = false ) {
17- if ( ! this . children [ character ] ) {
18- this . children [ character ] = new TrieNode ( character , isCompleteWord ) ;
13+ if ( ! this . children . has ( character ) ) {
14+ this . children . set ( character , new TrieNode ( character , isCompleteWord ) ) ;
1915 }
2016
21- return this . children [ character ] ;
17+ return this . children . get ( character ) ;
2218 }
2319
2420 hasChild ( character ) {
25- return ! ! this . children [ character ] ;
21+ return this . children . has ( character ) ;
2622 }
2723
2824 suggestChildren ( ) {
29- return Object . keys ( this . children ) ;
25+ return [ ... this . children . keys ( ) ] ;
3026 }
3127
3228 toString ( ) {
33- let childrenAsString = Object . keys ( this . children ) . toString ( ) ;
29+ let childrenAsString = this . suggestChildren ( ) . toString ( ) ;
3430 childrenAsString = childrenAsString ? `:${ childrenAsString } ` : '' ;
3531 const isCompleteString = this . isCompleteWord ? '*' : '' ;
3632
0 commit comments