可能重复:
访问对象的第一个属性
我只想知道是否有更好的方法来获取对象中的第一个成员名称,例如:
var x={a:1};
func(x);//will return 'a'
我编写了一个小功能但我不满意,我认为有更好的方法
我所做的是:
var get_member = function(obj){for (i in obj){if (obj.hasOwnProperty(i)) return i;}};
可能重复:
访问对象的第一个属性
我只想知道是否有更好的方法来获取对象中的第一个成员名称,例如:
var x={a:1};
func(x);//will return 'a'
我编写了一个小功能但我不满意,我认为有更好的方法
我所做的是:
var get_member = function(obj){for (i in obj){if (obj.hasOwnProperty(i)) return i;}};
假设您的“第一个成员”由添加顺序定义:
javascript 对象属性中没有保证顺序,因此即使它目前在大多数浏览器上都可以使用,您也不应该这样做。
查看这个相关问题:“for (... in ...)”循环中的元素顺序
因此,第一个添加的成员的正确的 ECMAScript 兼容实现不存在。
假设您有一个基于键(或值)的内在“第一个成员”定义:
如果您想要的是基于给定的顺序,例如按字母顺序,您可以这样做:
var keys = [];
for (k in x) {
keys.push(k);
}
keys.sort();
return keys[0];
对象没有“第一”属性,它们没有顺序。您只能通过使用获得“一些”属性
function func(obj) {
if (Object(obj) !== obj)
throw new Error("not an object");
for (var prop in obj)
return prop;
return null;
}
我认为这是从对象中获取第一个键的更好方法。
变量 x= {a:1};
for (var key in x) break;
控制台.log(键);