JavaScript захватывает объект / json по индексу - PullRequest
4 голосов
/ 19 мая 2019

Я знаю, как получить массив по его индексу. Также я знаю, как захватывать объекты по ключу, но я не хочу захватывать их по ключу.

Вот, пожалуйста, мои объекты.

var x = {"email":["This Position"]}

И я знаю, что могу взять This Position, как писать x.email[0].

Но проблема в том, что я не всегда могу схватить This Position с x.email[0].

Потому что сервер иногда отправляет мне так:

var x = {"phone":["This Position"]}

Даже когда-нибудь вот так: var x = {"name":["This Position"]}

Итак, вы знаете, что захватить This Position невозможно, потому что для этих переменных я должен написать как x.phone[0] или x.name[0].

И очень сложно написать для сотни переменных.

 var x = {"email":["This Position"]}

Так что я хочу захватить Эта позиция не с такой x.email[0].

Можете ли вы дать мне решение, что при любом названии ключа я просто хочу получить первое первое значение первым ключом? Возможно ли это?

Ответы [ 3 ]

3 голосов
/ 19 мая 2019

Вы можете использовать Object.values

var x = {"email":["This Position"]}
var value = Object.values(x)[0][0]
2 голосов
/ 19 мая 2019

Это возможно, поскольку объекты JavaScript упорядочены по последовательности вставки. Вы можете использовать Object.keys(obj), но это довольно медленно. Быстрее перебирать ключи с помощью in и возвращать первое.

const obj = {
  foobar: ["This position"],
  foobaz: ["That position"]
};

console.log(Object.values(obj)[0][0]);

// or

const getFirstKey = obj => {
  for (const k in obj) return obj[k];
};

console.log(getFirstKey(obj)[0]);
2 голосов
/ 19 мая 2019

Использовать Object.values примерно так:

var x = {"email":["This Position"]};
const [[res]] = Object.values(x);
console.log(res);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...