可能重复:
在 javascript 关联数组中动态创建键
通常我们像这样初始化一个数组:
var ar = ['你好','世界'];
为了访问它的值,我们这样做:
警报(ar[0]);// 你好
但我想要一个自定义索引来分配,例如:
var ar = ['first' => 'Hello', 'second' => 'World'];
接着
警报(ar['first']);
但我找不到怎么做,我可以为分配做这样的事情吗?
谢谢!
可能重复:
在 javascript 关联数组中动态创建键
通常我们像这样初始化一个数组:
var ar = ['你好','世界'];
为了访问它的值,我们这样做:
警报(ar[0]);// 你好
但我想要一个自定义索引来分配,例如:
var ar = ['first' => 'Hello', 'second' => 'World'];
接着
警报(ar['first']);
但我找不到怎么做,我可以为分配做这样的事情吗?
谢谢!
您可以使用Object而不是 Array,您可以为对象指定命名属性
var ar = {
first: 'hello',
second: 'world'
};
alert(ar['first']);
您也可以将带有字符串键的属性分配给您的数组,这也可以:
var ar = [];
ar['first'] = 'first';
alert(ar['first']);
你需要使用一个对象。
var obj = {'first': 'hello', 'second': 'world'};
alert(obj.first);
JavaScript 中的对象只是属性包(哈希表)。
你可以:
var ar = {};
ar["name"] = "Dave";
ar["salary"] = "Millions";
alert(ar.name); //Dave
alert(ar["salary"]); //millions
JavaScript 允许您非常灵活地创建这些对象。
JavaScript 本身没有关联数组,但有对象字面量:
var obj = {foo:'bar'};
obj.something = 'else';
//or:
obj['foo'] = 'BAR';
如果您在数组上创建命名索引(因为 Array 对象可追溯到 Object 原型),JS 不会大惊小怪,但您将失去所有Array
功能的使用(例如sort
,方法或魔法length
属性,仅举几例) )
你可以这样做:
var ar = {
'first' :'Hello',
'second' : 'World'
};
如您所见,这是您在 Javascript 中初始化对象的方式。Javascript 模糊了关联数组和对象之间的界限。
然后,您可以通过以下方式访问它:
ar['first']
甚至:
ar.first
此外,您可以省略键初始化中的引号,如下所示:
var ar = {
first :'Hello',
second : 'World'
};
只需使用
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]);
}
}