是否有一种优雅的方法来访问对象的第一个属性。。。

你不知道你的财产的名字而不使用像..这样的循环。。in或jQuery的$.each

例如,我需要在不知道foo1名称的情况下访问foo1对象:

var example = {
    foo1: { /* stuff1 */},
    foo2: { /* stuff2 */},
    foo3: { /* stuff3 */}
};

当前回答

这一点以前已经在这里讨论过了。

第一个概念不适用于对象财产,而for的顺序。。。在循环中并没有得到规范的保证,但实际上它是可靠的FIFO,除了chrome(错误报告)。据此做出决定。

其他回答

如果有人喜欢数组销毁

const [firstKey] = Object.keys(object);

尝试for…in循环,并在第一次迭代后中断:

for (var prop in object) {
    // object[prop]
    break;
}
var obj = { first: 'someVal' };
obj[Object.keys(obj)[0]]; //returns 'someVal'

Object.values(obj)[0]; // returns 'someVal'

使用它,您还可以通过索引访问其他财产。请注意!Object.keys或Object.values的返回顺序并不能根据ECMAScript得到保证,但所有主要浏览器实现都是非官方的,请阅读https://stackoverflow.com/a/23202095有关详细信息。

这一点以前已经在这里讨论过了。

第一个概念不适用于对象财产,而for的顺序。。。在循环中并没有得到规范的保证,但实际上它是可靠的FIFO,除了chrome(错误报告)。据此做出决定。

使用lodash库的解决方案:

_.find(example) // => {name: "foo1"}

但无法保证对象财产的内部存储顺序,因为它依赖于javascript VM实现。