从JavaScript中的关联数组中获取第一项的最有效方法是什么?

我需要从JavaScript中的一个相当大的关联数组中获得第一个项目(实际上,只是第一个键)。 下面是我如何做(使用jQuery):

getKey = function (data) { var firstKey; $.each(data, function (key, val) { firstKey = key; return false; }); return firstKey; }; 

只是猜测,但我会说有一个更好的(阅读:更有效的)这样做的方式。 有什么build议么?

更新:感谢有见地的答案和评论! 我忘了我的JavaScript 101,其中规范说你不能保证在一个关联数组中的特定顺序。 不过有趣的是,大多数浏览器都是这样实现的。 我不希望在获得第一个键之前对数组进行sorting,但是根据我的用例,这可能是不可避免的。

在关联数组(即对象)中没有真正的第一个最后一个元素。 您希望获得的唯一顺序是元素被parsing器保存的顺序 – 并且不保证与此保持一致。

但是,如果你想第一个出来 ,经典的方式可能会更容易一些:

 function getKey(data) { for (var prop in data) return prop; } 

要避免inheritance属性?

 function getKey(data) { for (var prop in data) if (data.propertyIsEnumerable(prop)) return prop; } 

您可以避免通过引用从Object.keys()返回的第一个条目来创build函数:

 var firstKey = Object.keys(data)[0]; 

对于sorting的键列表中的第一个条目,只需将一个调用添加到.sort()方法:

 var firstKey = Object.keys(data).sort()[0]; 

除了Jonathan的解决scheme之外,我们还可以扩展默认的数组function:

 Array.prototype.getKey = function() { for (var prop in this) if (this.propertyIsEnumerable(prop)) return prop; }