为什么这个关联数组返回undefined?

时间:2011-08-26 19:13:47

标签: javascript

我不知道为什么这不起作用。我以为我已经看过十几次使用过了,但看起来我从这个方面看错了:

var array = ["dog", "cat"];
console.log(array["dog"]); // undefined, why?

5 个答案:

答案 0 :(得分:6)

var array = {dog: "dog", cat: "cat"};
console.log(array["dog"]); // defined, why?

你拥有的不是一个关联数组,它不是这样的。 JavaScript object就是这样的。对象的文字是{},而不是[]

答案 1 :(得分:0)

因为您没有为键“dog”设置值。

var array = {"dog":"woof", "cat":"meow"}
console.log(array["dog"]); // returns woof

答案 2 :(得分:0)

那不是关联数组。事实上,JavaScript中不存在关联数组。如果您想要一些行为相似的东西,请使用一个对象:

var animals = {dog: 123, cat: 456};
console.log(animals["dog"], animals.dog);

答案 3 :(得分:0)

你已经制作了一个包含两个元素的数组:

array[0] = 'dog'
array[1] = 'cat'

这不是关联数组。

答案 4 :(得分:0)

它不是一个关联数组,只是一个常规数组。

console.log(array[0]); // will give you dog

如果你想要关联数组行为,就像这样创建一个对象:

var dictionary = {"dog":"woof", "cat":"meow"};
console.log(dictionary["dog"]);