如果我有一个JS对象:
var foo = { 'bar' : 'baz' }
如果我知道foo有基本的键/值结构,但不知道键的名称,我怎么能得到它?为…在吗?$ . each () ?
如果我有一个JS对象:
var foo = { 'bar' : 'baz' }
如果我知道foo有基本的键/值结构,但不知道键的名称,我怎么能得到它?为…在吗?$ . each () ?
当前回答
最简单的方法是使用Underscore.js:
键 _.keys(对象) 检索对象属性的所有名称。 _.键({一:1,二:2,三:3}); =>["一","二","三"]
是的,你需要一个额外的库,但它是如此简单!
其他回答
除了……没有别的办法了。在。如果你不想使用它(可能是因为在每次迭代中测试hasOwnProperty的效率很低?),那么使用一个不同的构造,例如kvp的数组:
[{ key: 'key', value: 'value'}, ...]
您可以单独访问每个键,而无需迭代,如下所示:
var obj = { first: 'someVal', second: 'otherVal' };
alert(Object.keys(obj)[0]); // returns first
alert(Object.keys(obj)[1]); // returns second
既然你提到了$.each(),下面是一个可以在jQuery 1.6+中工作的方便方法:
var foo = { key1: 'bar', key2: 'baz' };
// keys will be: ['key1', 'key2']
var keys = $.map(foo, function(item, key) {
return key;
});
我也遇到过同样的问题,这个方法很有效
//example of an Object
var person = {
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"blue"
};
//How to access a single key or value
var key = Object.keys(person)[0];
var value = person[key];
用于在javascript中访问对象或地图中的键的每个循环
for(key in foo){
console.log(key);//for key name in your case it will be bar
console.log(foo[key]);// for key value in your case it will be baz
}
注:也可以使用
种(foo);
它会像这样给你 输出:
(酒吧);