I am using the Mustache templating library and trying to generate a comma separated list without a trailing comma, e.g.
red, green, blue
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/