Объект в массив возвращает неопределенный - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь преобразовать JS Object в Array, но Array после преобразования не определен.

У меня изначально есть JSON, но из того, что я прочитал, он автоматически анализируется в JS Object (когда я пытаюсь его проанализировать,Я получаю SyntaxError: неожиданный токен o в JSON в позиции 1).Также, когда я console.log(typeof cityList) получаю Object.

Исходный JSON выглядит так:

    [
  {
    "id": 707860,
    "name": "Hurzuf",
    "country": "UA",
    "coord": {
      "lon": 34.283333,
      "lat": 44.549999
    }
  },
  {
    "id": 519188,
    "name": "Novinki",
    "country": "RU",
    "coord": {
      "lon": 37.666668,
      "lat": 55.683334
    }
  }
    ]

Я импортирую JSON так: import cityList from './city.list.json';

Я использую этот кодконвертировать:

const cityListArray = Object.values(cityList);

Если I console.log(cityListArray), я получаю неопределенное значение.

Я также пытался: const cityListArray = Object.keys(cityList).map(i => cityList[i]), но результат тот же.

Я не уверен, гдепроблема в.Любая помощь будет оценена!

1 Ответ

0 голосов
/ 10 июня 2018

Вам не нужно ничего преобразовывать, поскольку объект JSON уже является массивом.

Не следует проверять, является ли что-либо массивом с typeof, поскольку он возвращает "object" для массивов.

const a = [];
typeof a; // "object"

Вместо этого следует использовать метод Array.isArray().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...