i have this code which gives the error “Error: Uncaught (in promise): TypeError: this.weekMap.get is not a function”. Why weekMap is not recognized as a Map object?
JavaScript
x
5
1
let weekMap: Map<string, ExerciseDay>;
2
let jsonWeekMap =require('./initialWeekMap.json');
3
weekMap=jsonWeekMap as Map<string, ExerciseDay>;
4
console.log("week data got:"+weekMap.get("Monday"))
5
The Json file contains:
JavaScript
1
44
44
1
{
2
"Monday":{
3
"englishDayName":"Monday",
4
"dayNameTranslated":"Monday",
5
"counter":0,
6
"exerciseList":[]
7
},
8
"Tuesday":{
9
"englishDayName":"Tuesday",
10
"dayNameTranslated":"Tuesday",
11
"counter":0,
12
"exerciseList":[]
13
},
14
"Wednesday":{
15
"englishDayName":"Wednesday",
16
"dayNameTranslated":"Wednesday",
17
"counter":0,
18
"exerciseList":[]
19
},
20
"Thursday":{
21
"englishDayName":"Thursday",
22
"dayNameTranslated":"Thursday",
23
"counter":0,
24
"exerciseList":[]
25
},
26
"Friday":{
27
"englishDayName":"Friday",
28
"dayNameTranslated":"Friday",
29
"counter":0,
30
"exerciseList":[]
31
},
32
"Saturday":{
33
"englishDayName":"Saturday",
34
"dayNameTranslated":"Saturday",
35
"counter":0,
36
"exerciseList":[]
37
},
38
"Sunday":{
39
"englishDayName":"Sunday",
40
"dayNameTranslated":"Sunday",
41
"counter":0,
42
"exerciseList":[]
43
}
44
}
Advertisement
Answer
You are not converting the variable weekMap to a Map object correctly. Try the Object.entries function:
JavaScript
1
2
1
weekMap = new Map<string, ExerciseDay>(Object.entries(jsonWeekMap));
2