1

我在下面的代码部分发布了地图。如图所示,我向地图添加了一些值。但是当我尝试使用代码中所示的“getOwnPropertyNames”显示地图的内容时,循环中的日志语句不显示任何内容。

请让我知道如何正确使用“getOwnPropertyNames”

代码

const mymap = new Map();

const mapKeyToValue = (key, value) => {
  mymap.set(key, value);
};

const getMyMap = () => mymap;

mapKeyToValue('1', [{ 'a': 10, 'b': 100, 'c': 1000 }]);
mapKeyToValue('2', [{ 'a': 20, 'b': 200, 'c': 2000 }]);
mapKeyToValue('3', [{ 'a': 30, 'b': 300, 'c': 3000 }]);
mapKeyToValue('4', [{ 'a': 40, 'b': 400, 'c': 4000 }]);


console.log(Object.getOwnPropertyNames(mymap));//displays []

Object.getOwnPropertyNames(mymap).forEach( (v) => {
  console.log(mymap[v]);//displays nothing
});
4

1 回答 1

3

地图没有属性(仅限于字符串和符号键)。它将元素存储在内部。要遍历 a Map,请使用其entriesvalueskeys或带有for … of循环的隐式迭代器方法:

for (const [key, value] of mymap) {
    console.log(key, value);
}
于 2017-12-06T09:05:54.230 回答