0

可能重复:
访问对象的第一个属性

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

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

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

我所做的是:

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

3 回答 3

0

假设您的“第一个成员”由添加顺序定义:

javascript 对象属性中没有保证顺序,因此即使它目前在大多数浏览器上都可以使用,您也不应该这样做。

查看这个相关问题:“for (... in ...)”循环中的元素顺序

因此,第一个添加的成员的正确的 ECMAScript 兼容实现不存在。

假设您有一个基于键(或值)的内在“第一个成员”定义:

如果您想要的是基于给定的顺序,例如按字母顺序,您可以这样做:

var keys = [];
for (k in x) {
   keys.push(k);   
}
keys.sort();
return keys[0];
于 2012-09-20T10:41:22.630 回答
0

对象没有“第一”属性,它们没有顺序。您只能通过使用获得“一些”属性

function func(obj) {
    if (Object(obj) !== obj)
        throw new Error("not an object");
    for (var prop in obj)
        return prop;
    return null;
}
于 2012-09-20T10:45:16.483 回答
0

我认为这是从对象中获取第一个键的更好方法。

变量 x= {a:1};

for (var key in x) break;

控制台.log(键);

于 2012-09-20T11:02:49.687 回答