1

HTMLテーブルを作成するための簡単なJavaScriptを作成しました。
配列を反復処理することでデータが入力されます

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 に答える