Javascript 如何在地图上迭代<;字符串,字符串>;?

Javascript 如何在地图上迭代<;字符串,字符串>;?,javascript,typescript,Javascript,Typescript,我有一个对象类型:Map: 但当我尝试使用以下方法获取每个对应的值时: keys.forEach(k => {const val = foo[k]}); 我得到以下错误: type Map<string, string> has no index signature. 我现在做的是: const response = await this.axios.get<Map<string, string>>("some/api"); const foo =

我有一个对象类型:
Map

但当我尝试使用以下方法获取每个对应的值时:

keys.forEach(k => {const val = foo[k]});
我得到以下错误:

type Map<string, string> has no index signature.
我现在做的是:

const response = await this.axios.get<Map<string, string>>("some/api");
const foo = response.data;
const response=wait this.axios.get(“some/api”);
const foo=response.data;
使用时:第一个参数是值,第二个是键。不需要
。除非使用第三个参数(即映射本身),否则需要调用get

constfoo=newmap();
foo.set('foo','bar');
foo.set('bar','foo');
forEach(函数(v,k,fooMap){
log(`map key:${k},map value:${v},fooMap:${fooMap.get(k)}`);

})
您的问题没有显示试图使用
foo.forEach()
,但它确实尝试使用
键.forEach()
const keys=Object.keys(foo)
不会获取
foo:Map
的键,但它几乎肯定会返回一个空的
字符串[]

要获取
映射的
并对其进行迭代,可以执行以下操作:

for (const key of foo.keys()) {
  // each key of foo
}

另外,
axios
从不返回
Map
,根据您的使用情况,您可能指的是
对象
,或者您可以使用更专门的类型,如
类型字典={[K:string]:T}

const response = await this.axios.get<Dictionary<string>>("some/api");
const foo = response.data
const keys = Object.keys(foo)

keys.forEach(key => { ... })
const response=wait this.axios.get(“some/api”);
const foo=response.data
常量键=对象键(foo)
keys.forEach(key=>{…})

您可以直接迭代map
foo.forEach((value,key)=>{…})
对于map,您还需要使用
获取值。get
函数
foo.get(k)
检查@PSL的文档没有这些工作,我正在获取
foo.forEach
foo.get
不是函数。请查看更新。什么是“不工作”?你有错误吗?如果是的话,请提供它。请看我的评论上面,这不适合我。啊哈!杰出的那本字典正是我所缺少的。很好,谢谢。
const response = await this.axios.get<Map<string, string>>("some/api");
const foo = response.data;
for (const key of foo.keys()) {
  // each key of foo
}
Array.from(foo.keys()).forEach(key => {
  // each key of foo
})
const response = await this.axios.get<Dictionary<string>>("some/api");
const foo = response.data
const keys = Object.keys(foo)

keys.forEach(key => { ... })