table_with_headers = $(this.dom.table).find("thead tr th").map(->
$(this).text()
).get().join("\t")
Can one write it nicer? I especially don't like the inner function in map syntax enforced by CoffeeScript and jQuery.
CoffeeScript is not my forte, however I quite like this approach:
elements = $(this.dom.table).find("thead tr th")
table_with_headers2 = ($(element).text() for element in elements ).join('\t')
This way you call out which elements you are going to process, and then use a list comprehension. In a style that is closer to JS than true CoffeeScript.
You can use explicit find like so
$ 'thead tr th', @dom.table
and put some indentations instead of braces
table_with_headers = $ "thead tr th", @dom.table
.map -> @.text()
.join '\t'
Also try to use list comprehesion
table_with_headers = [
$(th).text()
for th in
$ "thead tr th", @dom.table
].join '\t'
elem
to th
?
\$\endgroup\$
Commented
Oct 1, 2014 at 17:54