在Handlebars模板中获取JSON数组的最后一个元素

6

因此,我发现可以使用以下方式在Handlebars中访问数组元素:

{{myArray.2.nestedObject}} and {{myArray.0.nestedObject}}

例如,获取第三个和第一个元素。 (handlebars-access-array-item)

有没有一种方法可以从数组中获取最后一个元素? 我尝试创建了一个帮助程序:

Handlebars.registerHelper("lastElement", function(array) {
  return array.last();  //Array.prototype extension
});

在模板中按以下方式调用:

{{lastElement myArray}} or even {{lastElement myArray.lastElement nestedArray}}

很遗憾,这并不起作用。辅助函数显然返回字符串。我需要的是一种即使在多维数组中也能实现此功能的方法。

2
请注意,您可以在第一个示例中使用{{myArray.[2].nestedObject}}相同的段落文字符号表示法可能有助于变量索引号? - Arjan
2个回答

7

我已经测试过,应该可以工作。

模板:

{{last foo}}

数据:

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

助手:

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

-1
上面的代码在所有情况下都可以正常工作。但如果传递的数组是一个空数组,则 handlebar 函数可能会抛出错误。因此请先执行空值检查,然后根据情况返回值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接