javascript - 对象属性作为哈希函数中的键值对

标签 javascript arrays object hash hashtable

我有一个关于 Javascript 的基本问题。

因为 Javascript 没有哈希表对象,但我意识到我可以构建一个对象来将其用作哈希表,如下所示:

var hashtable = {
    Today : {"I", "feel", "good"},
    Tomorrow : {'is', 'another', 'day'},
    Yesterday : 'alwaysGood'
}

网上查了很多,有一些使用associativeArray或者自己构建对象作为哈希表的方法,上面的原生对象构建方法不好吗?

最佳答案

由于此 {"I", "feel", "good"},您的代码示例不是有效的 JavaScript。在这种情况下,花括号代表一个对象文字,并且必须为该对象的每个属性分配一个值。

有效的版本如下所示:

var hashtable = {
    Today : ["I", "feel", "good"],
    Tomorrow : ['is', 'another', 'day'],
    Yesterday : 'alwaysGood'
}

注意使用 [] 创建数组。 JavaScript 中的数组是数字键控的,没有像其他语言中那样的关联数组的概念。然而,JavaScript 数组本身也是一个对象,因此您可以自由添加属性:

var arr = [];
arr.Today = 'some value';

为了避免在示例中使用数组,您需要为所有属性设置值:

var hashtable = {
    Today : {"I" : "i val", "feel" : "feel val", "good" : "good val"},
    Tomorrow : {'is' : 'is val', 'another' : 'another val', 'day' : 'day val'},
    Yesterday : 'alwaysGood'
}

以这种方式使用对象是有效且可接受的。欲了解更多信息,请参阅Working With Objects (MDN) .

关于javascript - 对象属性作为哈希函数中的键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23635015/

相关文章:

javascript - 使用 apollo-client + firebase auth 刷新 token

javascript - 如何在 $.each 数组中查找下一个索引项

javascript - 将 formdata 文件和字符串发送到 php

从 C 中的字符串指针数组创建二维数组

java - 是否可以在 foreach 循环中填充数组

c# - 如何通过套接字发送对象 C#

javascript - 返回具有过滤结果的新 JSON 对象

javascript - ReactJS:为什么 Material-UI <DatePicker/> 的属性默认日期不起作用?

javascript - 是否有 Object.keys.map 的简写

php - call_user_func() 来验证数组值