我需要一些帮助,因为我被困住了。我在angular4(TypeScript)中定义一个简单方法时遇到问题,该方法获取Map类型的参数。我想要的只是迭代Map
中的元素。没什么特别的。
当我尝试迭代Map对象map2
时,我收到以下错误。
错误:ERROR TypeError: map2.forEach is not a function
doStuff(map2: Map<string, string>):number{
//I get an ERROR here, because map2 is not recognised as a Map()?
map2.forEach((value: string, key: string) => {
console.log(key, value);
});
let map = new Map();
map.set("A","B");
map.set("C","d");
console.log(map.get("A")+" :"+ map.size);
//THIS WORKS
map.forEach((value: string, key: string) => {
console.log(key, value);
});
}
});
这是我从另一种方法调用该方法的方法
...
//some other method
let map4 = JSON.parse('{ "myString": "string", "myNumber": "4" }');
this.myNumber = this.doStuff(map4);
...
答案 0 :(得分:1)
您需要将文字对象(由JSON.parse
返回)转换为Map
以将其传递给doStuff
。您可以使用Object.entries
(可从ES2017获得):
let map4 = JSON.parse('{ "myString": "string", "myNumber": "4" }');
this.myNumber = this.doStuff(new Map(Object.entries(map4)));