在JavaScript中获取第一个对象成员名称

时间:2012-09-20 10:39:30

标签: javascript

  

可能重复:
  Access the first property of an object

我只是想知道是否有更好的方法来获取对象中的第一个成员名称:

var x={a:1};
func(x);//will return 'a'

我编写了一个小功能,但我不满意,我认为有更好的方法

我所做的是:

var get_member = function(obj){for (i in obj){if (obj.hasOwnProperty(i)) return i;}};

3 个答案:

答案 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(键);