Как получить первый массив в обещании получения - PullRequest
1 голос
/ 22 апреля 2019

Мне нужно вернуть в обещании получения объект JSON, который содержит все мои данные. Проблема в том, что я не знаю, как называется объект. Что я знаю, так это того, что всегда будет один объект.

Вот пример кода, где я получаю то, что мне нужно, зная имя объекта (в данном случае foo

  return fetch(endPoint)
    .then(res => res.json())
    .then(res => res.foo)
    .then(res => console.log(res))

Мой ответ будет выглядеть так

{
    "foo": [
        "bar1",
        "bar2",
        "bar3"
    ]
}

Однако мой код потерпит неудачу, если бы это был ответ:

{
    "goo": [
        "bar1",
        "bar2",
        "bar3"
    ]
}

Как я могу гарантировать, что мой код всегда работает независимо от того, как называется объект?

Ответы [ 2 ]

1 голос
/ 22 апреля 2019

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

const obj = {
  "foo": [
    "bar1",
    "bar2",
    "bar3"
  ]
};

const [foo] = Object.values(obj);
console.log(foo);

Вышеуказанное использует деструктурирование , и это сокращенно для этого:

const foo = Object.values(obj)[0];

Старый синтаксис:

var obj = {
    "foo": [
        "bar1",
        "bar2",
        "bar3"
    ]
};

var foo = obj[Object.keys(obj)[0]];
console.log(foo);
0 голосов
/ 22 апреля 2019

Вы можете использовать Object.values() и получить доступ к его первому элементу.

const obj = {"foo": ["bar1","bar2", "bar3"]}
const res = Object.values(obj)[0]
console.log(res)

Вы можете сделать его еще короче, используя Разрушение массива

const obj = {"foo": ["bar1","bar2", "bar3"]}
const [res] = Object.values(obj)
console.log(res)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...