首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >关联数组与JavaScript中的对象

关联数组与JavaScript中的对象
EN

Stack Overflow用户
提问于 2011-11-09 23:49:19
回答 5查看 59.8K关注 0票数 68

在我的脚本中,需要创建一个哈希表,我在google中进行了搜索。为此,大多数人都推荐使用JavaScript object。问题是哈希表中的一些键有一个“.在他们身上。我可以使用关联数组轻松地创建这些键。

我不明白为什么关联数组不好。在我查看的站点上提到的第一件事是length属性。

我来自Perl的背景,在那里我使用了散列。最常见的用途是从键中获取值,检查键是否存在,删除键值对,以及添加键值对。如果这些是我的常用用法,我可以安全地使用关联数组吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-11-09 23:54:23

在JavaScript中,对象是关联的,arrays...there不是它们的单独概念。您还可以安全地使用‘’。键名中,但只能使用方括号表示法访问该值:

代码语言:javascript
复制
var foo = {}
foo['bar'] = 'test';
foo['baz.bin'] = 'value';

alert(foo.bar); // Shows 'test'
alert(foo['baz.bin']); // Shows 'value'

如果您已经在使用它们,并且它们有效,那么您就是安全的。

票数 101
EN

Stack Overflow用户

发布于 2011-11-09 23:54:38

在JavaScript中,对象和数组几乎是一回事,数组具有一些神奇的功能(自动更新长度属性等)和适用于数组的原型方法。构造对象也比使用关联数组容易得多:

代码语言:javascript
复制
var obj = {"my.key": "myValue"};

代码语言:javascript
复制
var obj = [];
obj["my.key"] = "myValue";

因此,千万不要为此使用数组对象,而应该只使用常规对象。

一些功能:

代码语言:javascript
复制
var obj = {}; // Initialized empty object

删除键值对:

代码语言:javascript
复制
delete obj[key];

检查密钥是否存在:

代码语言:javascript
复制
key in obj;

获取密钥值:

代码语言:javascript
复制
obj[key];

添加键值对:

代码语言:javascript
复制
obj[key] = value;
票数 33
EN

Stack Overflow用户

发布于 2011-11-09 23:56:05

实际上,“关联数组”与ECMAScript中的“类似数组的对象”非常相似。即使数组也是ECMAScript中的对象,除了具有数字键(仍是背景中的字符串)和.length属性,以及一些从Array.prototype继承的方法。

因此,Perl散列和ECMAScript对象的行为类似。您可能不知道,您不仅可以通过点访问对象属性,还可以使用括号和字符串访问对象属性,例如

代码语言:javascript
复制
var myObj = { foo: 42 };

myObj.foo; // 42
myObj['foo']; // 42

了解了这一点,您还可以在.中使用密钥

代码语言:javascript
复制
var myObj = { };
myObj['hello.foo.world'] = 42;

当然,您只能使用括号表示法来访问该键。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8067590

复制
相关文章

相似问题

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