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.