@@ -2,35 +2,31 @@ export default class TrieNode {
2
2
constructor ( character , isCompleteWord = false ) {
3
3
this . character = character ;
4
4
this . isCompleteWord = isCompleteWord ;
5
- this . children = { } ;
5
+ this . children = new Map ( ) ;
6
6
}
7
7
8
8
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 ) ;
14
10
}
15
11
16
12
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 ) ) ;
19
15
}
20
16
21
- return this . children [ character ] ;
17
+ return this . children . get ( character ) ;
22
18
}
23
19
24
20
hasChild ( character ) {
25
- return ! ! this . children [ character ] ;
21
+ return this . children . has ( character ) ;
26
22
}
27
23
28
24
suggestChildren ( ) {
29
- return Object . keys ( this . children ) ;
25
+ return [ ... this . children . keys ( ) ] ;
30
26
}
31
27
32
28
toString ( ) {
33
- let childrenAsString = Object . keys ( this . children ) . toString ( ) ;
29
+ let childrenAsString = this . suggestChildren ( ) . toString ( ) ;
34
30
childrenAsString = childrenAsString ? `:${ childrenAsString } ` : '' ;
35
31
const isCompleteString = this . isCompleteWord ? '*' : '' ;
36
32
0 commit comments