This post from @FelicianoTech was really helpful:
data/portfolio_residential.json:
[
{
"favorite": "3",
"project_name": "D"
},
{
"favorite": "3",
"project_name": "C"
},
{
"favorite": "1",
"project_name": "B"
},
{
"favorite": "1",
"project_name": "A"
},
{
"favorite": "2",
"project_name": "E"
},
{
"favorite": "6",
"project_name": "F"
},
{
"favorite": "5",
"project_name": "G"
},
{
"favorite": "4",
"project_name": "I"
},
{
"favorite": "4",
"project_name": "H"
}
]
Template:
{{/* Build slice of unique, sorted favorites. */}}
{{- $favorites := slice -}}
{{- range .Site.Data.portfolio_residential -}}
{{- $favorites = $favorites | append .favorite -}}
{{- end -}}
{{- $favorites = $favorites | uniq | sort -}}
{{/* Range over the sorted favorites, then range over a sorted subset of the data file. */}}
{{- range $favorites -}}
{{- range where (sort $.Site.Data.portfolio_residential "project_name" "asc") "favorite" . -}}
favorite = {{ .favorite }}<br>
project_name = {{ .project_name }}<br><br>
{{- end -}}
{{- end -}}