我想用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
无法正常工作。
您正在将Map
视为Array
。您应该在map上使用get
和set
方法来使用内置函数,而不要以数组形式[]。如果未正确使用Javascript,则无法计算地图的大小
如果无法更改代码,则可以使用自己的函数来计算大小
function getMapSize(x) {
var len = 0;
for (var count in x) {
len++;
}
return len;
}
alert(getMapSize(mapp));
Map