0

可能重复:
在 javascript 关联数组中动态创建键

通常我们像这样初始化一个数组:

var ar = ['你好','世界'];

为了访问它的值,我们这样做:

警报(ar[0]);// 你好

但我想要一个自定义索引来分配,例如:

var ar = ['first' => 'Hello', 'second' => 'World'];

接着

警报(ar['first']);

但我找不到怎么做,我可以为分配做这样的事情吗?

谢谢!

4

6 回答 6

2

您可以使用Object而不是 Array,您可以为对象指定命名属性

var ar = {
  first: 'hello',
  second: 'world'
};
alert(ar['first']);

您也可以将带有字符串键的属性分配给您的数组,这也可以:

var ar = [];
ar['first'] = 'first';
alert(ar['first']);
于 2012-12-05T20:35:30.390 回答
2

你需要使用一个对象。

var obj = {'first': 'hello', 'second': 'world'};

alert(obj.first);
于 2012-12-05T20:35:52.560 回答
1

JavaScript 中的对象只是属性包(哈希表)。

你可以:

var ar = {};
ar["name"] = "Dave";
ar["salary"] = "Millions";

alert(ar.name);  //Dave
alert(ar["salary"]);  //millions

JavaScript 允许您非常灵活地创建这些对象。

于 2012-12-05T20:36:01.243 回答
1

JavaScript 本身没有关联数组,但有对象字面量:

var obj = {foo:'bar'};
obj.something = 'else';
//or:
obj['foo'] = 'BAR';

如果您在数组上创建命名索引(因为 Array 对象可追溯到 Object 原型),JS 不会大惊小怪,但您将失去所有Array功能的使用(例如sort,方法或魔法length属性,仅举几例) )

于 2012-12-05T20:36:08.387 回答
1

你可以这样做:

var ar = {
   'first' :'Hello', 
   'second' : 'World'
 };

如您所见,这是您在 Javascript 中初始化对象的方式。Javascript 模糊了关联数组和对象之间的界限。

然后,您可以通过以下方式访问它:

ar['first']

甚至:

ar.first

此外,您可以省略键初始化中的引号,如下所示:

var ar = {
   first :'Hello', 
   second : 'World'
 };
于 2012-12-05T20:35:01.057 回答
1

只需使用

    var h = new Object(); // or just {}
h['one'] = 1;
h['two'] = 2;
h['three'] = 3;

// show the values stored
for (var k in h) {
    // use hasOwnProperty to filter out keys from the Object.prototype
    if (h.hasOwnProperty(k)) {
        alert('key is: ' + k + ', value is: ' + h[k]);
    }
}
于 2012-12-05T20:36:22.577 回答