在把手#each块中以不同方式处理列表的最后一个元素

时间:2013-02-04 22:12:12

标签: javascript ember.js handlebars.js

  

可能重复:
  How do I add a separator between elements in an {{#each}} loop except after the last element?

作为一个最简单的例子,假设我有一个名单列表,我希望它们之间用逗号显示。我能做到

{{#each name in names }} {{name}}, {{/each}}

然后会产生最后的

John, Paul, George, Ringo,

带有不需要的最终逗号。我可以想办法通过在我的控制器函数中添加逗号来处理这个问题,但这看起来很尴尬并且有点侵犯了MVC分离。是否有一种方法只是在把手中确定何时处理最后一个元素并进行相应调整?

2 个答案:

答案 0 :(得分:1)

Javascript有一个.join函数,你最有可能使用它:

['John', 'Paul', 'George', 'Ringo'].join(', '); //John, Paul, George, Ringo

答案 1 :(得分:0)

另一种方法,以防您无法使用加入。

var arr = ['John', 'Paul', 'George', 'Ringo'];
var names="";
$.each(arr, function(i,val) { 

if (i < arr.length-1)
  names += val + ","
else
 names += val
 });
alert (names);