1

我编写了一段简单的 JavaScript 来创建 HTML 表格。
它是通过迭代数组来填充的

var resultSet;
for (var i = 0, i < questions.length;; i++){ 
   ...
    resultSet += '<tr>' + '<td>' + i + '</td><td>' + questions[i].question + '</td><td>' + questions[i].userAnswer + '</td><td>' +
questions[i].correctAnswer + '</td>' + '</tr>';
}

所以这是一种势在必行的方法。我正在阅读有关 Scala 的内容,其中类似的示例是:

questions.map(n => '<tr>' + '<td>' + '</td><td>' + questions[i].question  + ...);

这是一个功能。重点是什么而不是如何。

所以我想知道如何让我的 JavaScript 更实用?

当然允许使用 JQuery。

4

2 回答 2

3

然而, JavascriptArray.forEach的兼容性有限:虽然所有其他浏览器都支持它,但 IE 仅从 IE9 开始支持它——因此您可能需要其他 IE 的 shim。

基本上你可以写:

questions.forEach(function(a){
resultSet += '<tr><td>' + a.question + '</td><td>' + 
             a.userAnswer + '</td><td>' +
             a.correctAnswer + '</td></tr>';
});

jQuery 提供.each()了相同的功能:

$.each(questions, function(index, value) {
  /* Do your stuff*/
});
于 2013-01-08T10:46:00.433 回答
2

首先,正确的 Scala 将是

questions.map(q => '<tr>' + '<td>' + '</td><td>' + q.question  + ...);

其中q是 的元素questions,而不是索引。

JavaScript 也有map(请参阅末尾的浏览器兼容性了解支持此方法的浏览器)。所以它是一样的:

questions.map(function(q) { 
  return '<tr>' + '<td>' + '</td><td>' + q.question + ... 
});
于 2013-01-08T10:42:13.813 回答