diff options
Diffstat (limited to 'docs/content/en/functions/first.md')
-rw-r--r-- | docs/content/en/functions/first.md | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/docs/content/en/functions/first.md b/docs/content/en/functions/first.md new file mode 100644 index 000000000..98d162617 --- /dev/null +++ b/docs/content/en/functions/first.md @@ -0,0 +1,53 @@ +--- +title: first +linktitle: first +description: "Slices an array to only the first _N_ elements." +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [functions] +menu: + docs: + parent: "functions" +keywords: [iteration] +signature: ["first LIMIT COLLECTION"] +workson: [lists,taxonomies,terms,groups] +hugoversion: +relatedfuncs: [after,last] +deprecated: false +aliases: [] +--- + +`first` works in a similar manner to the [`limit` keyword in +SQL][limitkeyword]. It reduces the array to only the `first N` +elements. It takes the array and number of elements as input. + +`first` takes two arguments: +1. `number of elements` +2. `array` *or* `slice of maps or structs` + +{{< code file="layout/_default/section.html" >}} +{{ range first 10 .Pages }} + {{ .Render "summary" }} +{{ end }} +{{< /code >}} + +*Note: Exclusive to `first`, LIMIT can be '0' to return an empty array.* + +## `first` and `where` Together + +Using `first` and [`where`][wherefunction] together can be very +powerful. Below snippet gets a list of posts only from [**main +sections**][mainsections], sorts it by the `title` parameter, and then +ranges through only the first 5 posts in that list: + +{{< code file="first-and-where-together.html" >}} +{{ range first 5 (where site.RegularPages "Type" "in" site.Params.mainSections).ByTitle }} + {{ .Content }} +{{ end }} +{{< /code >}} + + +[limitkeyword]: https://www.techonthenet.com/sql/select_limit.php +[wherefunction]: /functions/where/ +[mainsections]: /functions/where/#mainsections |