javascript - 使迭代在 JavaScript/JQuery 中更具功能性

标签 javascript functional-programming

我写了一些简单的 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。

最佳答案

Javascript 有 Array.forEach但是兼容性有限:虽然所有其他浏览器都支持它,但 IE 仅从 IE9 开始支持它 - 因此您可能需要其他 IE 的垫片。

基本上你可以这样写:

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*/
});

关于javascript - 使迭代在 JavaScript/JQuery 中更具功能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14213034/

相关文章:

c++ - 如何使用 std::max 或 std::min 作为函数参数

ios - Swift - 映射到不同的类型

javascript - Function.call、Function.prototype.call、Function.prototype.call.call 和 Function.prototype.call.call.call 之间的区别

javascript - 如何在所有 AJAX 加载元素和代码完全加载后执行代码?

javascript - 从任何地方滚动一个 div

javascript - 没有花括号的箭头函数

javascript - 如何加固伪CSS规则

PHP 根据函数中给出的参数获取结果

javascript - Ramda : How to minimize computing resources by currying, 过滤和映射?

javascript - Angular routeParams不起作用URL正在更改