奇怪的是我的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”]);
答案 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);