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