新手:对象或散列
Newbie: object or hash?
如果我定义如下内容:
var groups={
'group_one': ['red','green','blue'],
'group_two': ['yellow','black'],
'group_three': ['white', 'pink','purple','orange']
}
它是一个正常的js 对象还是一个哈希表?如果它不是哈希表,那么Javascript 哈希表是什么样子的?
我可以访问一个组:
my_group=groups['group_two']
它是一个对象,这就是规范所指的它。对象是JavaScript中的数据类型。
哈希表 [Wikipedia] 是一个数据结构,您可以使用对象,但它不能很好地处理重复键(它只是覆盖条目)。您可以提供自己的实现,例如,看看来自Google Closure Library的Hash Map实现。
您的groups
变量引用了一个完全正常的对象,它像所有正常的javascript对象一样是将属性名称映射到属性值的关联数组。
据我所知,JavaScript没有这样的哈希表。你有很好的旧的从零开始的数字数组:
var a = ["foo", "bar"];
alert(a[0]); // "foo"
…还有对象:
var b = {
x: "foo",
y: "bar
};
alert(b.x); // "foo"
数组按键排序,不能有空格。对象没有排序。它们共享方括号语法:
alert(a[0]);
alert(b[x]); // same as b.x
我认为JavaScript引擎在其内部大量使用哈希表,但JavaScript引擎通常不是用JavaScript编写的;-)
如果你想要哈希表的典型功能,在这里你提供一个键和数据,然后你可以通过提供键来获得数据,那么javascript对象使用对象上的属性提供该功能。
javascript引擎内部有一个对象的属性查找算法,类似于哈希表(尽管具体的实现并不重要,因为它有适当的功能)。
语言中没有单独的哈希表。一个可以被实现,但很少有一个点,因为对象通常提供所需的东西。
在你的数据:
var groups= {
'group_one': ['red','green','blue'],
'group_two': ['yellow','black'],
'group_three': ['white', 'pink','purple','orange']
}
你可以在将来访问数据:
groups.group_one
或
groups['group_one']
和两者的计算结果为:
['red','green','blue']
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- 序列化数据属性中对象的最可靠方法
- 如何访问声音管理器2创建的声音对象
- Javascript新手..如何将对象属性存储为变量,并将其值存储为另一个变量
- WebDev新手:我应该如何处理将复杂对象从PHP传递到PHP(非连续)
- JavaScript 新手 - 需要帮助使用表单中的数据创建多个对象
- 使用ajax创建对象的Javascript新手
- 新手:对象或散列