I have the following code:
[[cards.item]]
  name = "a"
[[cards.item]]
  name = "b"
[[cards.item]]
  name = "c"
[[cards.item]]
  name = "f"
names = ["f", "a", "b"]
{{$y := (.GetPage (print "/cards/_index.md")).Params.cards.item}}
{{$x := where $y ".name" "in" .Params.names}}
I want to check what .Params.names are specified in cards.item and return the values that are found. The code works and returns: a, b, f.
But I’d like the code to return the values in the order specified in .Params.names so f, a, b
How would I do this? Thanks.
             
            
              
            
           
          
            
            
              {{ $a := slice
  (dict "name" "a")
  (dict "name" "b")
  (dict "name" "c")
  (dict "name" "f")
}}
{{ $b := slice "f" "a" "b" }}
{{ $c := slice }}
{{ range $b }}
  {{ $c = $c | append (where $a "name" .) }}
{{ end }}
<pre>{{- jsonify (dict "indent" "  ") $c -}}</pre>
 
            
              1 Like 
            
            
           
          
            
            
              @jmooring  isn’t intersect what the Golang gods invented for this?
             
            
              
            
           
          
            
            
              I tried using intersect but could not get it to work. Perhaps it’s because I have a map and an array, whereas with intersect both need to be arrays? Not sure.
             
            
              
            
           
          
            
            
              Yes, I would range through your data structure and create an array (slice) from that. Then compare via intersect with the frontmatter.
             
            
              1 Like 
            
            
           
          
            
            
              Please post tested code. I couldn’t figure out a more elegant way to return this slice:
[
  {
    "name": "f"
  },
  {
    "name": "a"
  },
  {
    "name": "b"
  }
]
 
            
              
            
           
          
            
              
                system  
              
                  
                    April 12, 2021, 11:27pm
                   
                  7 
               
             
            
              This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.