我想在 javascript 中打印地图的大小。我使用了命令 map.size
但答案是 0,这是不正确的。
这是我的源代码:
<div id="demo" ></div>
<script>
function add(test, key, value) {
if (!test[key])
test[key] = [value];
else
test[key].push(value);
}
var mapp = new Map();
var i,j,k=0;
for (i=0;i<5;i++)
{
for (j=0;j<i;j++)
add(mapp,i,j);
}
document.getElementById('demo').innerHTML="Map size are: "+ mapp.size;
</script>
输出: Map size are: 0
但是,当我打印地图条目时:
for (var m in mapp)
{
for (k=0;k<mapp[m].length;k++)
document.write(mapp[m][k]+" ");
document.write("<br>");
}
我可以看到输出:
0
0 1
0 1 2
0 1 2 3
请告诉我如何找到地图的大小以及为什么上面的代码 mapp.size
不起作用。
原文由 Ratnesh 发布,翻译遵循 CC BY-SA 4.0 许可协议
你对待
Map
就像对待Array
一样。您应该使用get
和set
地图上的方法来使用内置函数,而不是数组方式 [ ]。如果你没有正确使用它,Javascript 无法计算地图的大小如果你不能更改代码,那么你可以有自己的函数来计算大小