首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javascript中有像python那样的字典吗?

javascript中有像python那样的字典吗?
EN

Stack Overflow用户
提问于 2010-08-25 01:15:19
回答 5查看 177K关注 0票数 132

我需要用javascript做一个字典,如下所示

我不记得确切的符号了,但大概是这样的:

states_dictionary={ CT=[alex,harry], AK=[liza,alex], TX=[fred, harry] ........ }

javascript中有这样的东西吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-08-03 13:19:27

这是一个古老的帖子,但我想我应该提供一个有插图的答案。

使用javascript的对象表示法。如下所示:

states_dictionary={ 
     "CT":["alex","harry"], 
     "AK":["liza","alex"], 
     "TX":["fred", "harry"]
};

并访问这些值:

states_dictionary.AK[0] //which is liza

或者,您可以使用javascript文字对象表示法,这样键就不需要用引号括起来:

states_dictionary={ 
     CT:["alex","harry"], 
     AK:["liza","alex"], 
     TX:["fred", "harry"]
};
票数 158
EN

Stack Overflow用户

发布于 2010-08-25 01:26:38

直到2015年( ECMAScript 6的发布),Javascript中才出现真正的关联数组。从那时起,您可以使用Map对象作为Robocat状态。Look up the details in MDN。示例:

let map = new Map();
map.set('key', {'value1', 'value2'});
let values = map.get('key');

如果不支持ES6,您可以尝试使用对象:

var x = new Object();
x["Key"] = "Value";

但是,对于对象,不可能使用典型的数组属性或array.length之类的方法。至少可以在for- in -loop中访问“对象数组”。

票数 66
EN

Stack Overflow用户

发布于 2015-10-07 21:38:13

我知道这是一个古老的问题,但是当你搜索“javascript字典”时,它会在谷歌中弹出,所以我想在上面的回答中补充一下,在ECMAScript 6中引入了官方的Map对象,这是一个字典实现:

var dict = new Map();
dict.set("foo", "bar");

//returns "bar"
dict.get("foo");

与javascript的普通对象不同,它允许任何对象作为键:

var foo = {};
var bar = {};
var dict = new Map();
dict.set(foo, "Foo");
dict.set(bar, "Bar");

//returns "Bar"
dict.get(bar);

//returns "Foo"
dict.get(foo);

//returns undefined, as {} !== foo and {} !== bar
dict.get({});
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3559070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档