javascript - 对象属性作为散列函数中的键值对

标签 javascript arrays object hash hashtable

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它.

7年前关闭。




Improve this question




我有一个关于 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 - 遍历JavaScript中的数组

arrays - 将非重复随机数添加到数组

javascript - CouchDB:获取唯一值

javascript - 删除 div 时快速滚动同级 div 的方法

javascript - 如何将protobuf base64字符串解码为js对象

javascript - Handlebars : return hash from helper

javascript - 使用 javascript .filter() 删除重复对象

javascript - 将对象转换为对象数组,每个对象都包含原始对象的一个​​属性和值

javascript - Object.create() 的默认行为

Javascript 对象重量/大小影响性能