Как получить доступ к первому свойству объекта в Javascript?

Есть ли элегантный способ доступа к первому свойству объекта ...

  1. где вы не знаете название своей недвижимости
  2. без использования цикла for .. inили jQuery's$.each

Например, мне нужно получить доступ к foo1объекту, не зная имя foo1:

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

javascript,object,

427

Ответов: 13


1048 ов принято
var obj = { first: 'someVal' };
obj[Object.keys(obj)[0]]; //returns 'someVal'

Используя это, вы можете получить доступ к другим свойствам по индексам. Имейте это в виду! Object.keysвозврат заказа не гарантируется в соответствии с ECMAScript, однако неофициально это делается по всем основным версиям браузеров, пожалуйста, прочитайте https://stackoverflow.com/a/23202095 для получения более подробной информации об этом.


86

Попробуйте for a€¦ inцикл и перерыв после первой итерации:

for (var prop in object) {
    // object[prop]
    break;
}

42

Используйте Object.keysдля получения массива свойств объекта. Пример:

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

var keys = Object.keys(example); // => ["foo1", "foo2", "foo3"] (Note: the order here is not reliable)

Документация и кросс-браузерная прокладка при условии здесь . Пример его использования можно найти в другом одном из моих ответов здесь .

Изменить : для ясности я просто хочу повторить то, что было правильно указано в других ответах: порядок клавиш в объектах javascript не определен.


20

Вы также можете это сделать Object.values(example)[0].


20

Версия с одним правилом:

var val = example[function() { for (var k in example) return k }()];
JavaScript, объект,
Похожие вопросы