Heya,
How can groups be sorted in dataviewjs?
Tried with standard array manipulation but to no avail (e.g. using Array.reverse()) so wondering if these are Dataview arrays instead and need to convert them into normal arrays first, then back?
You can also explicitly convert a normal JavaScript array into a Dataview array using dv.array(<array>). If you want to convert a Data array back to a normal array, use DataArray#array() — Data Arrays - Dataview
The setup:
page-1:
---
title: "page 1"
status: "archived"
tags: "note"
---
page-2:
---
title: "page 2"
status: "published"
tags: "note"
---
Current Query:
for (let group of dv.pages("#note").groupBy(p => p.status)) {
dv.header(3, group.key);
dv.table(
["Title", "Status", "Tags"],
group.rows
.sort(k => k.file.link, 'desc')
.map(k => [(k.title).link(k.file.link), k.status, k.tags]))
}
Current Output:
Archived
| Name |
Status |
Tags |
| page 1 |
Archived |
#note |
Published
| Name |
Status |
Tags |
| page 2 |
Published |
#note |
Desired Output:
Published
| Name |
Status |
Tags |
| page 2 |
Published |
#note |
Archived
| Name |
Status |
Tags |
| page 1 |
Archived |
#note |