Массив .map (), возвращающий неопределенный - PullRequest
0 голосов
/ 24 сентября 2018

Это структура массива, когда я console.log это.

-[]
  -0: Array(31)
    -0:
      -date: "2018-08-26T00:00:00-04:00"
      -registered:
        -standard: 0
        -vip: 0
      -waitlisted:
        -standard: 0
        -vip: 0

Это мой код для сопоставления даты и зарегистрированных (два отдельных массива):

this.data.map((value) => value.date);
this.data.map((value) => value.registered['standard']);

Я либо получаю пустой массив, либо undefined, когда регистрирую их.Что я делаю не так?

Я хочу использовать их для диаграммы с использованием ChartJS, где:

this.lineChart = new Chart(lineCtx, {
  type: 'line',
  data: {
    datasets: [{
      label: (I want the dates to be the labels),
      data: (I want the list of standard registrants)
    }]...

РЕДАКТИРОВАТЬ:

Я обновил способ полученияданные для отображения следующей структуры:

{
  "registrationHistory": [{
    "date": "2018-08-26T00:00:00-4:00",
    "registered": {
      "vip":0,
      "standard":0
    },
    "waitlisted":{
      "vip":0,
      "standard":0
  }
  {
   ,...
  }
]}

1 Ответ

0 голосов
/ 24 сентября 2018

Ваш массив является двумерным, и map выполняет итерацию только первого измерения, то есть:

-[]
  -0: Array(31)     // first dimension
    -0:             // second dimension
      -date: "2018-08-26T00:00:00-04:00"
      ...

Это будет выглядеть как следующая строка JSON:

[[{"date":"2018-08-26T00:00:00-04:00", ...}]]

Так какВы не предоставили полный пример, поэтому невозможно порекомендовать наиболее подходящее решение:

  • Если вы управляете источником данных, удалите первое измерение, поскольку оно представляется избыточным.
  • Предполагая, что вам нужен только первый элемент первого измерения, обратитесь к этому ключу:

    this.data[0].map((value) => value.date);
    

Если ваша модель данных более сложна, чем показано в вашем вопросе, вам необходимовыяснить другой подход.

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