【问题标题】:how to read HashMap in typescript 2.9如何在 typescript 2.9 中读取 HashMap
【发布时间】:2019-04-19 23:34:45
【问题描述】:
map = new Map<number, string>();
this.map.set(1, "educadmin");
this.map.set(6, "hr");
this.map.set(7, "tech");
console.log(map);
//process 1
for (let entry of this.map.entries()) {
    console.log(entry[0], entry[1]);  
}
//process 2
Array.from(map.values(), (value: string) => {
      console.log(value);
});

当我登录到控制台时,我得到了这个:

Map(0) {}
size: (...) 
__proto__: Map
[[Entries]]: Array(3)
  0:{6 => "hr"}
  1: {1 => "educadmin"}
  2: {7 => "tech"}
length: 3

我想将 get 所有这些值 -> hr 、 eduadmin 和 tech 添加到字符串 [] 我尝试了以上 2 个过程,但我无法阅读

【问题讨论】:

  • 你的问题是......?
  • 我无法读取值
  • 什么运气不好?我投票决定关闭它,因为它不清楚。 发布您尝试过的代码,以及所需的输出和错误消息(如果有),我会考虑撤回我的近距离投票。也不清楚这与打字稿有什么关系。
  • 读取什么值?再次,请使用minimal, complete, verifiable example 编辑问题。您发布的所有内容都是脱节的,在某些情况下是相互矛盾的。从地图中读取值很简单,只需调用someMap.get(key),如果它不工作,还有其他事情正在发生,但你没有发布足够的信息让我说。您的修改使情况变得更糟,而不是更好。
  • 这是朝着正确方向迈出的巨大一步。现在将运行代码得到的输出编辑到问题中以及为什么它不正确,因为Array.from(map.values()) 给了我["hr", "educadmin", "tech"]

标签: javascript angular6 typescript2.9


【解决方案1】:

我认为您正在寻找一种将键/值作为数组获取的解决方案。

let keysAsArray = Array.from(map.keys());
let valueAsArray = Array.from(map.values());

console.log(keysAsArray);
console.log(valueAsArray);

输出是

[1, 6, 7]
["educadmin", "hr", "tech"]

【讨论】:

  • 是的。我试过这种方式。但它确实有效。我得到空数组。我的typescript版本是2.9,使用ecma 5,你觉得你的代码还支持这些版本吗?
  • Map 在 ES6 中引入。你需要使用polyfil。您能否查看thisthisthis 以获得更多见解并最终解决您的问题?
猜你喜欢
  • 1970-01-01
  • 2021-01-01
  • 2023-02-20
  • 2013-08-06
  • 2020-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多