Getting the last element from a JSON array in a Handlebars template

client-side-templating, handlebars.js, json

Solution

Should work, I've tested it.

Template:

{{last foo}}

Data:

{foo : [1,2,3,4,5,6]}

Helper:

Handlebars.registerHelper("last", function(array) {
  return array[array.length-1];
});

Problem

So, I found that array elements can be accessed in Handlebars using: ``` {{myArray.2.nestedObject}} and {{myArray.0.nestedObject}} ``` ..to get the third and first elements for instance. (handlebars-access-array-item) Is there a way to get the last element from an array? I tried creating a helper for it: ``` Handlebars.registerHelper("lastElement", function(array) { return array.last(); //Array.prototype extension }); ``` ...and calling it as follows in the template: ``` {{lastElement myArray}} or even {{lastElement myArray.lastElement nestedArray}} ``` Sadly, this doesn't work. Helper functions return strings apparently. What I need is a way to be able to do this even with multi-dimensional arrays.

Original source

Related problems