可能重复:
如何枚举 javascript 对象的属性?
如果我有这样的 javascript 对象:
data = {
a : 2,
b : 3
}
但是 a 和 b 是任意的,并在运行时决定。有没有办法在不知道密钥的情况下通过对象并访问所有属性?
可能重复:
如何枚举 javascript 对象的属性?
如果我有这样的 javascript 对象:
data = {
a : 2,
b : 3
}
但是 a 和 b 是任意的,并在运行时决定。有没有办法在不知道密钥的情况下通过对象并访问所有属性?
data = {
a : 2,
b : 3
}
for(var propName in data) {
if(data.hasOwnProperty(propName)) {
var propValue = data[propName];
// do something with each element here
}
}
首先,这不是 JS 中通常所说的 an Array
,它通常被称为Object
. Array
s 只包含值,即
arr = [1, 2, 3, 4]
而Object
s ('Associative arrays') 关联名称:值对。
要迭代 a 的值Object
,请使用for...in
var object = { a: 'hello' }
for (var key in object) {
if (object.hasOwnProperty(key)) {
alert(key); // 'a'
alert(object[key]); // 'hello'
}
}
这hasOwnProperty
很重要,以确保您只查看实际对象,而不是属于原型的属性。