我对Javascript有一个基本的问题。
因为Javascript没有哈希表对象,但我意识到我可以构建一个对象,将其用作哈希表,如下所示:
var hashtable = {
Today : {"I", "feel", "good"},
Tomorrow : {'is', 'another', 'day'},
Yesterday : 'alwaysGood'
}
我在互联网上搜索了很多,有一些方法使用了associativeArray或者将自己的对象构建为哈希表,上面的本机对象构建方法是不是很好?
答案 0 :(得分:2)
由于此{"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)。