在javascript中等效的字典/ hashmap [英] Dictionary/hashmap equivalent in javascript

查看:73
本文介绍了在javascript中等效的字典/ hashmap的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




我创建了几个

 google.maps.Marker 

个实例,每个实例都有一个ID。



在VB.NET中我会创建一个Dictionary(Of String,Object)并使用myDict(id)查找标记 - JavaScript中的等价物是什么?我还需要能够通过id删除id-marker对。



谢谢



我尝试过:



添加并查找:



 var markers = {}; 

markers [markers.length] = {id,new google.maps.Marker(...)};

var marker = markers [id];





删除:

 var i;找到


for(i = 0; i< markers.length; i ++)
{
if(markers [i] = id)//将绝对没有用
{
markers.splice(i,1);发现
休息;
}
}

解决方案

您已经关闭:

 var markers = {}; 

//添加或更新:
markers [id] = new google.maps.Marker(...);

//要检索:
var marker = markers [id];

//测试密钥是否存在:
var exists = markers.hasOwnProperty(id);

//删除:
删除标记[id];



使用对象 - JavaScript | MDN [ ^ ]

Object.prototype.hasOwnProperty() - JavaScript | MDN [ ^ ]

删除运算符 - JavaScript | MDN [ ^ ]


Hi
I am creating several

google.maps.Marker

instances and each have an id.

In VB.NET I would create a Dictionary(Of String, Object) and look up the marker with myDict(id) - what's the equivalent in JavaScript? I will also need to be able to delete id-marker pairs by the id.

Thanks

What I have tried:

To add and look up:

var markers = {};

markers[markers.length] = {id, new google.maps.Marker(...)};

var marker = markers[id];



To remove:

var i;

found:
for(i = 0; i < markers.length; i++)
{
    if(markers[i] = id) // will definitely not work
    {
        markers.splice(i, 1);
        break found;
    }
}

解决方案

You're close:

var markers = {};

// To add or update:
markers[id] = new google.maps.Marker(...);

// To retrieve:
var marker = markers[id];

// To test whether the key exists:
var exists = markers.hasOwnProperty(id);

// To remove:
delete markers[id];


Working with objects - JavaScript | MDN[^]
Object.prototype.hasOwnProperty() - JavaScript | MDN[^]
delete operator - JavaScript | MDN[^]


这篇关于在javascript中等效的字典/ hashmap的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆