Javascript关联数组(字典)不起作用

时间:2014-02-12 11:57:57

标签: javascript

奇怪的是我的JS代码警告为空。

    // Used as Dictionary:
    var dict = new Array();
    dict['STAR'] = "star";
    dict['MOUTH'] = "mouth";
    dict['HAND'] = "hand";
    alert(dict);
    alert(dict("MOUTH"));

有什么建议吗?


P.S。谢谢大家!我知道哪里出错!警告(dict(“MOUTH”)); - 应该警惕(dict [“MOUTH”]);

3 个答案:

答案 0 :(得分:1)

JS中没有关联数组这样的东西。

您可以对对象执行相同的操作:

var dict = {};
dict['STAR'] = "star";
dict['MOUTH'] = "mouth";
dict['HAND'] = "hand";
alert(dict);
alert(dict["MOUTH"]);

或者,如果键是有效的变量名,您可以将它们写为属性:

dict.star = "star";
dict.mouth = ...;

或使用直接文字:

var dict = {
    star: "star",
    mouth: "mouth",
    hand: "hand"
};

事实上,在JS中没有100%相当于Dictionary / associative数组,因为即使空对象也有自己的方法(例如hasOwnProperty),这意味着你可以覆盖“native”元素对象。但是,有一些解决方法,比如使用Object.create(null)这是一个完全空的对象,但在所有浏览器中都不可用......或者使用带前缀的getter和setter。

答案 1 :(得分:0)

   // Used as Dictionary:
var dict = {};
dict['STAR'] = "star";
dict['MOUTH'] = "mouth";
dict['HAND'] = "hand";
alert(dict);
alert(dict["MOUTH"]);

答案 2 :(得分:0)

使用:

var dict = {
    STAR: "star",
    MOUTH: "mouth",
    HAND: "hand"
};

alert(dict);
alert(dict.MOUTH);