Как структурировать ассоциативный массив для внедрения в `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"
}
]
]
Тогда сделай свою группировку...