可能重复:
Dynamically creating keys in javascript associative array
通常我们初始化一个这样的数组:
var ar = ['Hello','World'];
为了获取它的值,我们做了:
警报(AR [0]); //你好
但是我想要一个自定义索引来分配,例如:
var ar = ['first'=> '你好','秒'=> '世界'];
然后
警报(AR [ '第一']);
但是我找不到怎么样,有什么这样的东西我可以做分配?
感谢的!
答案 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]);
}
}