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

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

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

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

当前回答

否。MDN定义的对象文本是:

一个对象的零对或多对属性名和相关值的列表,用大括号({})括起来。

因此,对象文字不是数组,您只能使用其显式名称或使用in关键字的for循环访问财产。

其他回答

如果您需要访问“对象的第一个属性”,这可能意味着您的逻辑有问题。对象财产的顺序无关紧要。

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

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

这是我的解决方案

  const dataToSend = {email:'king@gmail.com',password:'12345'};
   const formData = new FormData();
      for (let i = 0; i < Object.keys(dataToSend).length; i++) {
     formData.append(Object.keys(dataToSend)[i], 
         Object.values(dataToSend)[i]);
      }

  console.log(formData);

单行版本:

var val = example[function() { for (var k in example) return k }()];

您可以使用Object.values()访问对象的值:

var obj = { first: 'someVal' };
Object.values(obj)[0]; // someVal