Javascript是否支持关联数组?

时间:2015-10-19 06:42:47

标签: javascript arrays associative-array

我已经环顾四周看看Javascript是否支持关联数组,尽管事实上它明确表示它没有,但它似乎无论如何都有用吗?

我很想知道规格是否有任何变化,以及是否建议使用它们。

示例代码:



var foo = new Array;
foo["bar"] = "It works";

console.log(foo["bar"]);




3 个答案:

答案 0 :(得分:1)

您应该使用对象,它们是JavaScript中的一等公民:

var foo = {
    "bar": "It works"
};

console.log(foo.bar);
console.log(foo["bar"]);

答案 1 :(得分:0)

在Javascript中,foo["bar"]在语义上等同于foo.bar。但这是Javascript对象,而不是关联数组。但是,如您所见,您可以将对象视为关联数组。

答案 2 :(得分:0)

  

我环顾四周看看Javascript是否支持关联数组,尽管事实上它明确表示它不是

你在哪里看到它清楚地表明JavaScript不支持关联数组?

关联数组 - 键/值对的集合(也称为映射,字典和各种上下文中的许多其他名称) - 是Javascript中的基本数据类型。但是,在JavaScript中,它们被称为“对象”。

但是,根据您的示例代码:

with open('private.key', 'r') as infile:
    pk = infile.read().split('\n', 1)[1].rsplit('\n', 1)[0]

似乎你可能会问一个稍微不同的问题,即“JavaScript数组是否包含属性(除了数字索引的属性之外)”?

答案,以及记录在案,并在SO上的无数问题中涵盖,是“是”。原因是在JavaScript中,数组是一种特殊类型的对象,因此与所有对象一样,它们可以具有命名属性。

  

是否建议使用它们。

如果您的意思是建议将命名属性挂起JavaScript数组,则意见不同。您可以查看this question