Как структурировать ассоциативный массив для внедрения в `dom-repeat`

У меня есть массив массивов, которые я хотел бы использовать в dom-repeat, но получаю сообщение о том, что данные не похожи на массив.

dom-repeat.html: 465 dom-repeat ожидаемый массив для items, найдено {0: Массив (1), 1: Массив (1), 2: Массив (13)...

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

Родитель карты

<template is="dom-repeat" items="[[data]" index-as="index">
  <card-item-group data="[[item]]"></card-item-group> -->
</template>

Карточка ребенка

<template is="dom-repeat" items="[[data]" index-as="index">
  <card-items data="[[item]]"></card-items> -->
</template>

Я подхожу к этому неправильно?

Могу ли я объединить позиции в карты другим способом?

Исходный набор данных:

[{
  "0": {
    "time": "2018-02-20",
    "description": "Item 1",
    "number": "1193312"
  },
  "1": {
    "time": "2018-02-21",
    "itemDesc": "Item 2",
    "number": "1193314"
  },
  "2": {
    "time": "2018-02-21",
    "description": "Item 3",
    "number": "1193314"
}

Сгруппированный набор данных:

[{
  "0":[
   {
      "time": "2018-02-20",
      "description": "Item 1",
      "number": "1193312"
    }
  ],
  "1":[
    {
      "time": "2018-02-21",
      "itemDesc": "Item 2",
      "number": "1193314"
    },{
      "time": "2018-02-21",
      "description": "Item 3",
      "number": "1193314"
    }
  ]
}]

1 ответ

Ваши данные не являются массивом.

Сделайте некоторые преобразования, например, так:

original.map((item) =>
    Object.keys(item).map((key) => item[key]));

Это приведет к:

[
    [
        {
            "time": "2018-02-20",
            "description": "Item 1",
            "number": "1193312"
        },
        {
            "time": "2018-02-21",
            "itemDesc": "Item 2",
            "number": "1193314"
        },
        {
            "time": "2018-02-21",
            "description": "Item 3",
            "number": "1193314"
        }
    ]
]

Тогда сделай свою группировку...

Другие вопросы по тегам