javascript数组如下所示,
var course_ids = (1, 2, 3, 4);
var selected = (1, 3);
for (var x = 0; x < course_ids.length; x++) {
if (selected.find(checkCourse)) {
table_data += "<td>true</td>";
} else {
table_data += "<td>false</td>";
}
}
$('#exam_tbl tr:last').append(table_data);
function checkCourse(course_id) {
return course_id;
}
html表在表格行中包含course_ids
作为th
。然后我想将selected
加载到下一行。但如果选择的课程在那里,我想在td
中显示为true,否则要显示false。
样品如下。
---------------------------------
| 1 | 2 | 3 | 4 | //th
----------------------------------
|true |false |true |false | //td
-----------------------------------
请帮我这样做。
答案 0 :(得分:2)
您可以使用map()
和join()
创建html字符串,includes()
来检查元素是否包含在另一个数组中。
var course_ids = [1, 2, 3, 4];
var selected = [1, 3];
$('<tr>').append(course_ids
.map(id => `<th>${id}</th>`)
.join(''))
.appendTo($('thead'))
$('<tr>').append(course_ids
.map(e => `<td>${selected.includes(e)}</td>`)
.join(''))
.appendTo($('tbody'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="exam_tb">
<thead></thead>
<tbody></tbody>
</table>
或者您可以使用reduce()
方法并使用thead和tbody字符串返回一个对象。
var course_ids = [1, 2, 3, 4];
var selected = [1, 3];
var html = course_ids
.reduce(function(r, e) {
r.thead += `<th>${e}</th>`;
r.tbody += `<td>${selected.includes(e)}</td>`;
return r;
}, {thead: '', tbody: ''});
$('<tr>').append(html.thead).appendTo($('thead'))
$('<tr>').append(html.tbody).appendTo($('tbody'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="exam_tb">
<thead></thead>
<tbody></tbody>
</table>
答案 1 :(得分:1)
course_ids
变量必须包含一个数组。
course_ids = [1,2,3,4];
正如您所写,course_ids
的值为4
。
这称为comma separated operator.
逗号运算符计算每个操作数(从左到右) 并返回最后一个操作数的值。
console.log((1,2,3,4))
&#13;
答案 2 :(得分:1)
var course_ids = [1, 2, 3, 4, 5];
var selected = [1, 3, 4];
var table_data = "";
for (var x = 0; x < course_ids.length; x++) {
if (selected.indexOf(course_ids[x]) != -1) {
table_data += "<td>true</td>";
} else {
table_data += "<td>false</td>";
}
}
console.log(table_data);
$('#exam_tbl tr:last').append(table_data);