如何通过它的索引分配Javascript数组

时间:2012-12-05 20:33:33

标签: javascript arrays initialization

  

可能重复:
  Dynamically creating keys in javascript associative array

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

var ar = ['Hello','World'];

为了获取它的值,我们做了:

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

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

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

然后

警报(AR [ '第一']);

但是我找不到怎么样,有什么这样的东西我可以做分配?

感谢的!

6 个答案:

答案 0 :(得分:2)

你可以这样做:

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

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

然后您可以使用以下方式访问它:

ar['first']

甚至:

ar.first

另外,您可以在密钥初始化中省略引号,如下所示:

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

答案 1 :(得分:2)

您可以使用Object代替Array,您可以为object

指定命名属性
var ar = {
  first: 'hello',
  second: 'world'
};
alert(ar['first']);

此外,您只需将具有字符串键的属性分配给您的数组,这也将起作用:

var ar = [];
ar['first'] = 'first';
alert(ar['first']);

答案 2 :(得分:2)

您需要使用对象。

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

alert(obj.first);

答案 3 :(得分:1)

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

你可以:

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

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

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

答案 4 :(得分:1)

JavaScript没有关联数组,但是对象文字:

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

如果在数组上创建命名索引,JS不会大惊小怪(因为Array对象追溯到Object原型)但是你将放弃使用Array特性({{1}等方法或者,魔术sort属性,仅举几例)

答案 5 :(得分: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]);
    }
}