【问题标题】:Efficient syntax for populating a javascript associative array用于填充 javascript 关联数组的有效语法
【发布时间】:2011-04-19 08:57:11
【问题描述】:

我有一个自动完成文本框,用户可以在其中输入商品代码,并且需要在 javascript 中找出该商品代码的 id 号。

关联数组是我认为应该完成的方式,但以下内容似乎有点冗长,我希望有人有更好的方法来做它或我下面的简写:

var itemIds = new Array();
itemIds["item1"] = 15;
itemIds["item2"] = 40;
itemIds["item3"] = 72;
...

function getItemId(code){
    return itemIds[code];
}

【问题讨论】:

  • 不必将itemIds 声明为Array 对象。毕竟,您只是向对象添加属性。由于 JavaScript 对象可以被视为 container for key-value pairs,因此任何 JavaScript 对象都可以。

标签: javascript arrays associative-array


【解决方案1】:

尝试使用 Object Literal 符号来指定您的查找,如下所示:

var itemIds = {
    "item1" : 15,
    "item2" : 40
    ...
};

访问应该仍然像这样工作:

var item1Value = itemIds["item1"];

【讨论】:

  • 从技术上讲,JSON 是使用 JavaScript 对象和数组字面量进行数据交换 - 您所展示的是对象字面量。
  • 哦,我从名称中的“Notation”位假设它定义了语法。它是对象字面量!
  • JSON 是 Douglas Crockford 赋予数据格式的名称,它采用 JavaScript 对象文字的语法。不过我能理解这种困惑!
【解决方案2】:

您所做的不是数组,而是一个对象(JavaScript 中的对象与 PHP 中的关联数组是等价的)。

您可以使用 JavaScript 对象字面量语法:

var itemIds = {
    item1: 15,
    item2: 40,
    item3: 72
};

JavaScript 对象成员可以通过点符号或数组下标访问,如下所示:

itemIds.item1;
itemIds['item1'];

如果您将成员名称作为字符串获取,则需要使用第二个选项。

【讨论】:

  • 哇,这是一个很好的答案,感谢您提供示例。
猜你喜欢
  • 2021-06-03
  • 1970-01-01
  • 2022-12-18
  • 2017-06-06
  • 1970-01-01
  • 2015-01-07
  • 2016-12-15
  • 2010-11-20
  • 1970-01-01
相关资源
最近更新 更多