Array Helpers

Visit the: code | unit tests

{{after}}

Returns all of the items in an array after the specified index. Opposite of before.

Params

  • array {Array}: Collection
  • n {Number}: Starting index (number of items to exclude)
  • returns {Array}: Array exluding n items.

Example


    {{after array 1}}
    
    

{{arrayify}}

Cast the given value to an array.

Params

  • value {any}
  • returns {Array}

Example

{{arrayify "foo"}}
    
    

{{before}}

Return all of the items in the collection before the specified count. Opposite of after.

Params

  • array {Array}
  • n {Number}
  • returns {Array}: Array excluding items after the given number.

Example


    {{before array 2}}
    
    

{{eachIndex}}

Params

  • array {Array}
  • options {Object}
  • returns {String}

Example


    {{#eachIndex array}}
      {{item}} is {{index}}
    {{/eachIndex}}
    

{{filter}}

Block helper that filters the given array and renders the block for values that evaluate to true, otherwise the inverse block is returned.

Params

  • array {Array}
  • value {any}
  • options {Object}
  • returns {String}

Example


    {{#filter array "foo"}}AAA{{else}}BBB{{/filter}}
    
    

{{first}}

Returns the first item, or first n items of an array.

Params

  • array {Array}
  • n {Number}: Number of items to return, starting at 0.
  • returns {Array}

Example

{{first "['a', 'b', 'c', 'd', 'e']" 2}}
    
    

{{forEach}}

Iterates over each item in an array and exposes the current item in the array as context to the inner block. In addition to the current array item, the helper exposes the following variables to the inner block:

  • index
  • total
  • isFirst
  • isLast Also, @index is exposed as a private variable, and additional private variables may be defined as hash arguments.

Params

  • array {Array}
  • returns {String}

Example


    
    {{#forEach accounts}}
      <a href="mailto:{{ email }}" title="Send an email to {{ name }}">
    	{{ name }}
      a>{{#unless isLast}}, {{/unless}}
    {{/forEach}}
    

{{inArray}}

Block helper that renders the block if an array has the given value. Optionally specify an inverse block to render when the array does not have the given value.

Params

  • array {Array}
  • value {any}
  • options {Object}
  • returns {String}

Example


    {{#inArray array "d"}}
      foo
    {{else}}
      bar
    {{/inArray}}
    
    

{{isArray}}

Returns true if value is an es5 array.

Params

  • value {any}: The value to test.
  • returns {Boolean}

Example

{{isArray "abc"}}
    
    
    
    {{isArray array}}
    
    

{{itemAt}}

Returns the item from array at index idx.

Params

  • array {Array}
  • idx {Number}
  • returns {any} value

Example


    {{itemAt array 1}}
    
    

{{join}}

Join all elements of array into a string, optionally using a given separator.

Params

  • array {Array}
  • separator {String}: The separator to use. Defaults to ,.
  • returns {String}

Example


    {{join array}}
    
    
    {{join array '-'}}
    
    

{{equalsLength}}

Returns true if the the length of the given value is equal to the given length. Can be used as a block or inline helper.

Params

  • value {Array|String}
  • length {Number}
  • options {Object}
  • returns {String}

{{last}}

Returns the last item, or last n items of an array or string. Opposite of first.

Params

  • value {Array|String}: Array or string.
  • n {Number}: Number of items to return from the end of the array.
  • returns {Array}

Example


    
    {{last value}}
    
    
    {{last value 2}}
    
    
    {{last value 3}}
    
    

{{length}}

Returns the length of the given string or array.

Params

  • value {Array|Object|String}
  • returns {Number}: The length of the value.

Example

{{length '["a", "b", "c"]'}}
    
    
    
    {{length myArray}}
    
    
    
    {{length myObject}}
    
    

{{lengthEqual}}

Alias for equalsLength

{{map}}

Returns a new array, created by calling function on each element of the given array. For example,

Params

  • array {Array}
  • fn {Function}
  • returns {String}

Example


    {{map array double}}
    
    

{{pluck}}

Map over the given object or array or objects and create an array of values from the given prop. Dot-notation may be used (as a string) to get nested properties.

Params

  • collection {Array|Object}
  • prop {Function}
  • returns {String}

Example

// {{pluck items "data.title"}}
    
    

{{reverse}}

Reverse the elements in an array, or the characters in a string.

Params

  • value {Array|String}
  • returns {Array|String}: Returns the reversed string or array.

Example


    {{reverse value}}
    
    
    {{reverse value}}
    
    

{{some}}

Block helper that returns the block if the callback returns true for some value in the given array.

Params

  • array {Array}
  • iter {Function}: Iteratee
  • {Options}: Handlebars provided options object
  • returns {String}

Example


    {{#some array isString}}
      Render me if the array has a string.
    {{else}}
      Render me if it doesn't.
    {{/some}}
    
    

{{sort}}

Sort the given array. If an array of objects is passed, you may optionally pass a key to sort on as the second argument. You may alternatively pass a sorting function as the second argument.

Params

  • array {Array}: the array to sort.
  • key {String|Function}: The object key to sort by, or sorting function.

Example


    {{sort array}}
    
    

{{sortBy}}

Sort an array. If an array of objects is passed, you may optionally pass a key to sort on as the second argument. You may alternatively pass a sorting function as the second argument.

Params

  • array {Array}: the array to sort.
  • props {String|Function}: One or more properties to sort by, or sorting functions to use.

Example


    {{sortBy array "a"}}
    
    

{{withAfter}}

Use the items in the array after the specified index as context inside a block. Opposite of withBefore.

Params

  • array {Array}
  • idx {Number}
  • options {Object}
  • returns {Array}

Example


    {{#withAfter array 3}}
      {{this}}
    {{/withAfter}}
    
    

{{withBefore}}

Use the items in the array before the specified index as context inside a block. Opposite of withAfter.

Params

  • array {Array}
  • idx {Number}
  • options {Object}
  • returns {Array}

Example


    {{#withBefore array 3}}
      {{this}}
    {{/withBefore}}
    
    

{{withFirst}}

Use the first item in a collection inside a handlebars block expression. Opposite of withLast.

Params

  • array {Array}
  • idx {Number}
  • options {Object}
  • returns {String}

Example


    {{#withFirst array}}
      {{this}}
    {{/withFirst}}
    
    

{{withGroup}}

Block helper that groups array elements by given group size.

Params

  • array {Array}: The array to iterate over
  • size {Number}: The desired length of each array "group"
  • options {Object}: Handlebars options
  • returns {String}

Example


    {{#withGroup array 4}}
      {{#each this}}
    	{{.}}
      {{each}}
      <br>
    {{/withGroup}}
    
    
    
    

{{withLast}}

Use the last item or n items in an array as context inside a block. Opposite of withFirst.

Params

  • array {Array}
  • idx {Number}: The starting index.
  • options {Object}
  • returns {String}

Example


    {{#withLast array}}
      {{this}}
    {{/withLast}}
    
    

{{withSort}}

Block helper that sorts a collection and exposes the sorted collection as context inside the block.

Params

  • array {Array}
  • prop {String}
  • options {Object}: Specify reverse="true" to reverse the array.
  • returns {String}

Example


    {{#withSort array}}{{this}}{{/withSort}}
    
    

{{unique}}

Block helper that return an array with all duplicate values removed. Best used along with a each helper.

Params

  • array {Array}
  • options {Object}
  • returns {Array}

Example


    {{#each (unique array)}}{{.}}{{/each}}