隐藏数组中的空元素

时间:2018-09-24 20:15:18

标签: javascript arrays

我有一个使用标准功能(分页,排序,搜索,日期范围等)的数据表,但表底部还有一个部分按办公室显示总数。但是,我想实现的是一种隐藏任何在办公室显示为“ 0”的搜索结果的方法。例如,如果您在我的表中搜索“助理”,那么爱丁堡,伦敦,新加坡和东京都将显示结果“ 0”(因为这些办公室中没有任何助理)。除了显示那些空结果之外,我该如何隐藏它们?

这是我的jsfiddle的链接:https://jsfiddle.net/l337method/vhoupanz/

这是我的剧本:

var offices = api.column(2).data().sort().unique().toArray();
var totals = [];
for (var i = 0; i < offices.length; i++) totals.push(0);

api.rows({filter:'applied'}).every(function() {
    var data = this.data();
    totals[offices.indexOf(data[2])] += intVal(data[5]);
    });

html = '';
    for (var i = 0; i < offices.length; i++) {
    html += '<br>' + offices[i] + ': ' + totals[i];
    }
    html += '<br'

$(api.column(4).footer()).html(html);

2 个答案:

答案 0 :(得分:1)

如何?

html = [];
for (var i = 0; i < offices.length; i++) {
  if (totals[i] > 0) html.push(offices[i] + ': ' + totals[i]);
}

$(api.column(4).footer()).html(html.length == 0?"":html.join('</br>'));

答案 1 :(得分:1)

尝试一下:

html = '';
for (var i = 0; i < offices.length; i++) {
    if(totals[i] > 0){
         html += '<br>' + offices[i] + ': ' + totals[i];
    }
}
html += '<br'