first.md (1501B)
1 ---
2 title: first
3 linktitle: first
4 description: "Slices an array to only the first _N_ elements."
5 date: 2017-02-01
6 publishdate: 2017-02-01
7 lastmod: 2017-02-01
8 categories: [functions]
9 menu:
10 docs:
11 parent: "functions"
12 keywords: [iteration]
13 signature: ["first LIMIT COLLECTION"]
14 workson: [lists,taxonomies,terms,groups]
15 hugoversion:
16 relatedfuncs: [after,last]
17 deprecated: false
18 aliases: []
19 ---
20
21 `first` works in a similar manner to the [`limit` keyword in
22 SQL][limitkeyword]. It reduces the array to only the `first N`
23 elements. It takes the array and number of elements as input.
24
25 `first` takes two arguments:
26 1. `number of elements`
27 2. `array` *or* `slice of maps or structs`
28
29 {{< code file="layout/_default/section.html" >}}
30 {{ range first 10 .Pages }}
31 {{ .Render "summary" }}
32 {{ end }}
33 {{< /code >}}
34
35 *Note: Exclusive to `first`, LIMIT can be '0' to return an empty array.*
36
37 ## `first` and `where` Together
38
39 Using `first` and [`where`][wherefunction] together can be very
40 powerful. Below snippet gets a list of posts only from [**main
41 sections**][mainsections], sorts it by the `title` parameter, and then
42 ranges through only the first 5 posts in that list:
43
44 {{< code file="first-and-where-together.html" >}}
45 {{ range first 5 (where site.RegularPages "Type" "in" site.Params.mainSections).ByTitle }}
46 {{ .Content }}
47 {{ end }}
48 {{< /code >}}
49
50
51 [limitkeyword]: https://www.techonthenet.com/sql/select_limit.php
52 [wherefunction]: /functions/where/
53 [mainsections]: /functions/where/#mainsections