Я получаю JSON -объект от API, подобного thhis:
{
"BuchungsvorgangKategorieId": 1,
"BuchungsvorgangKategorie": "Miete",
"Group": "Ideeller Bereich"
},
{
"BuchungsvorgangKategorieId": 2,
"BuchungsvorgangKategorie": "Taiko-Beitrag",
"Group": "Ideeller Bereich"
},
{
"BuchungsvorgangKategorieId": 5,
"BuchungsvorgangKategorie": "Jahresbeitrag",
"Group": "Ideeller Bereich"
},
{
"BuchungsvorgangKategorieId": 3,
"BuchungsvorgangKategorie": "Reisekosten (Auftritt)",
"Group": "Zweckbetrieb"
},
{
"BuchungsvorgangKategorieId": 4,
"BuchungsvorgangKategorie": "Auftritt",
"Group": "Zweckbetrieb"
},
Теперь при использовании выбора Vuetify есть возможность сгруппировать по некоторому заголовку. Таким образом, я хотел бы преобразовать свой результат следующим образом:
{header: "Ideller Bereich" },
{
"BuchungsvorgangKategorieId": 1,
"BuchungsvorgangKategorie": "Miete",
"Group": "Ideeller Bereich"
},
{
"BuchungsvorgangKategorieId": 2,
"BuchungsvorgangKategorie": "Monatsbeitrag",
"Group": "Ideeller Bereich"
},
{
"BuchungsvorgangKategorieId": 5,
"BuchungsvorgangKategorie": "Jahresbeitrag",
"Group": "Ideeller Bereich"
},
{header: Zweckbetrieb },
{
"BuchungsvorgangKategorieId": 3,
"BuchungsvorgangKategorie": "Reisekosten",
"Group": "Zweckbetrieb"
},
{
"BuchungsvorgangKategorieId": 4,
"BuchungsvorgangKategorie": "Auftritt",
"Group": "Zweckbetrieb"
}
Полагаю, мне нужно циклически (arr.map?) Просматривать массив объектов и иметь переменную проверки, которая изначально пуста. Всегда, если текущее значение Group отличается от check-переменной, мне нужно обновить контрольную переменную и вставить новое значение в позицию перед текущим элементом (arr.splice?)
Update:
Благодаря комментариям @trincot и @Natixco, которые помогли мне в дальнейшем расследовании, я смог создать этот маленький кусочек кода:
let checkVariable = ""
this.FilterKategorien.forEach((item,index) => { //this.FilterKategorien contained the records from the API.
if(item.Group!=checkVariable) {
this.FilterKategorien.splice(index,0,{header: item.Group})
checkVariable=item.Group
}
})
console.log(this.FilterKategorien)