In Mustache templating is there an elegant way of expressing a comma separated list without the trailing comma?

后端 未结 17 1659
滥情空心
滥情空心 2020-12-02 10:26

I am using the Mustache templating library and trying to generate a comma separated list without a trailing comma, e.g.

red, green, blue

17条回答
  •  孤街浪徒
    2020-12-02 10:51

    I'm using custom functions for that, in my case when working with dynamic SQL queries.

        $(document).ready(function () {
        var output = $("#output");    
        var template = $("#test1").html();
        var idx = 0;
        var rows_count = 0;
        var data = {};
        
        data.columns = ["name", "lastname", "email"];
        data.rows  = [
          ["John", "Wick", "john.wick@hotmail.com"],
          ["Donald", "Duck", "donald.duck@ducks.com"],
          ["Anonymous", "Anonymous","jack.kowalski@gmail.com"]
        ];
    
        data.rows_lines = function() {
          let rows = this.rows;
          let rows_new = [];
          for (let i = 0; i < rows.length; i++) {
            let row = rows[i].map(function(v) {
                return `'${v}'`
            })
            rows_new.push([row.join(",")]);
          }
          rows_count = rows_new.length;
          return rows_new
        }
    
        data.last = function() {
            return idx++ === rows_count-1; // omit comma for last record
        }
        
        var html = Mustache.render(template, data);
        output.append(html);
    
    });
    
    
    

    Mustache example: Generate SQL query (last item support - omit comma for last insert)

    https://jsfiddle.net/tmdoit/4p5duw70/8/

提交回复
热议问题