Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 哈希函数中作为键值对的对象属性_Javascript_Arrays_Object_Hash_Hashtable - Fatal编程技术网

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

Javascript 哈希函数中作为键值对的对象属性,javascript,arrays,object,hash,hashtable,Javascript,Arrays,Object,Hash,Hashtable,我有一个关于Javascript的基本问题 由于Javascript没有哈希表对象,但我意识到我可以构建一个对象,将其用作哈希表,如下所示: var hashtable = { Today : {"I", "feel", "good"}, Tomorrow : {'is', 'another', 'day'}, Yesterday : 'alwaysGood' } 我在互联网上搜索了很多,有一些方法使用AssociationArray或将自己的对象构建为哈希表,上述本机

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

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

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

我在互联网上搜索了很多,有一些方法使用AssociationArray或将自己的对象构建为哈希表,上述本机对象构建方法不好吗?

您的代码示例不是有效的JavaScript,因为这
{“I”,“feel”,“good”}
。在此上下文中,大括号表示对象文字,必须为对象的每个属性指定一个值

有效版本如下所示:

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'
}
要避免在示例中使用数组,需要为所有属性设置值:

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'
}

以这种方式使用对象是有效和可接受的。有关更多信息,请参阅。

您不能完全按照您发布的内容来做,因为它在语法上是不正确的。但是,像哈希表一样使用对象的基本思想是好的。^^他说,这个思想是好的,但是你的代码是无效的,javascript中没有关联数组。@adeneo对象在技术上是@andrewverie,不,它们不是--但是它们可以像其他语言中使用的关联数组一样使用。可能的重复