Javascript Datatables-从页脚计算中省略某些行

Javascript Datatables-从页脚计算中省略某些行,javascript,jquery,datatables,Javascript,Jquery,Datatables,我有一个计算页脚中所有行总数的表。我的问题是,我可以根据条件省略某些行吗 例如,我有一个棒球运动员的赛季统计数据,他们的职业生涯总计在页脚处。 这位球员在2018赛季为两支不同的球队效力。这可以通过联赛league字段中的TOTAL来表示,我在该字段中添加了他在该赛季各球队的综合统计数据。 因此,看看下面的表格,您应该注意: 2017赛季,他在《STL》中获得了1支《代码》热门歌曲 2018赛季,他有15支安打(5支安打属于LAD,10支安打属于BAL) 考虑到这一点,你应该看到他在页脚的职业生

我有一个计算页脚中所有行总数的表。我的问题是,我可以根据条件省略某些行吗

例如,我有一个棒球运动员的赛季统计数据,他们的职业生涯总计在页脚处。 这位球员在2018赛季为两支不同的球队效力。这可以通过联赛
league
字段中的
TOTAL
来表示,我在该字段中添加了他在该赛季各球队的综合统计数据。 因此,看看下面的表格,您应该注意:

2017赛季,他在《STL》中获得了1支《代码》热门歌曲

2018赛季,他有15支安打(5支安打属于
LAD
,10支安打属于
BAL

考虑到这一点,你应该看到他在页脚的职业生涯总数没有正确计算。他的职业生涯应该是16岁,而不是31岁。 因此,为了理顺这一点,我想将
LEAGUE
列中包含
TOTAL
的所有行从页脚合计中删除。我该怎么做?这里的任何帮助都将不胜感激。谢谢

YEAR    Name        AGE  TEAM   LEAGUE   HITS   
2017    John Smith  25   STL    NL       1
2018    John Smith  26          TOTAL    15
2018    John Smith  26   LAD    NL       5
2018    John Smith  26   BAL    AL       10
        Career Total                     31
这是我的密码

<div align="center">
         <table id = 'battingtbl' class="display compact nowrap">
        <thead>
            <tr>
                <th>YEAR</th>
                <th>NAME</th>
                <th>AGE</th>
                <th>TEAM</th>
                <th>LEAGUE</th>
                <th>HITS</th>
            </tr>
        </thead>
        <tbody>
        {% for stat in playerdata.bbhittingstatsmstr_set.all %}
            <tr>
                <td>{{ stat.year }}</td>
                <td>{{ stat.name }}</td>
                <td>{{ stat.age }}</td>
                <td>{{ stat.team }}</td>
                <td>{{ stat.league }}</td>
                <td>{{ stat.hits }}</td>
            </tr>
        {% endfor %}
        </tbody>
             <tfoot>
                    <tr>
                        <th></th>
                        <th></th>
                        <th></th>
                        <th></th>
                        <th></th>
                        <th></th>
                    </tr>
             </tfoot>
        </table>
                <script>
                    $(document).ready(function () {
                        $('#battingtbl').DataTable({
                            "searching": true,
                            "pageLength": 40,
                            "scrollX": true,
                            "paging": false,
                            "info": false,
                            drawCallback: () => {
                                const table = $('#battingtbl').DataTable();
                                const tableData = table.rows({
                                        search: 'applied'
                                    }).data().toArray();
                                const totals = tableData.reduce((total, rowData) => {
                                        total[0] += parseFloat(rowData[5]);          <!--HITS -->
                                        return total;
                                    }, [0,0,0,0,0,0]);
                                $(table.column(5).footer()).text(totals[0]);         <!--HITS -->
                            }
                        })
                    });
                </script>

年
名称
年龄
团队
联合会
击打
{playerdata.bbhittingstatsmstr_set.all%中的stat为%
{{stat.year}
{{stat.name}}
{{stat.age}}
{{stat.team}}
{{stat.league}
{{stat.hits}}
{%endfor%}
$(文档).ready(函数(){
$('#BattingBL')。数据表({
“搜索”:没错,
“页面长度”:40,
“scrollX”:正确,
“分页”:false,
“信息”:错误,
drawCallback:()=>{
常量表=$('#battingbl')。数据表();
const tableData=table.rows({
搜索:“已应用”
}).data().toArray();
const totals=tableData.reduce((总计,行数据)=>{
总计[0]+=parseFloat(行数据[5]);
返回总数;
}, [0,0,0,0,0,0]);
$(table.column(5).footer()).text(总计[0]);
}
})
});

表格数据中添加if语句。reduce
调用:

const totals = tableData.reduce((total, rowData) => {
    if (rowData[4] !== 'TOTAL') {
        total[0] += parseFloat(rowData[5]);          <!--HITS -->
    }
    return total;
}, [0,0,0,0,0,0]);

$(table.column(5).footer()).text(totals[0]);         <!--HITS -->
const totals=tableData.reduce((总计,行数据)=>{
如果(行数据[4]!==‘总计’){
总计[0]+=parseFloat(行数据[5]);
}
返回总数;
}, [0,0,0,0,0,0]);
$(table.column(5).footer()).text(总计[0]);
还可以简化reduce调用的初始值(第3个参数):

//totals是一个数字而不是数组
const totals=tableData.reduce((总计,行数据)=>{
如果(行数据[4]!==‘总计’){
总计+=parseFloat(行数据[5]);
}
返回总数;
}, 0);
$(表.column(5).footer()).text(总计);

仍不能正常工作。当我离开.toArray()时,我在HITS列中得到0。如果我只是复制和粘贴你拥有的东西,并将其保留,我在页脚中什么都没有(甚至连0都没有)我这样做对吗。它似乎对我不起作用。我只是发现我的代码中有一个错误-对此感到抱歉。我更新了代码-再次尝试第二个代码段。成功了!万分感谢!
// totals is a Number not an Array
const totals = tableData.reduce((total, rowData) => {
    if (rowData[4] !== 'TOTAL') {
        total += parseFloat(rowData[5]);          <!--HITS -->
    }
    return total;
}, 0);

$(table.column(5).footer()).text(totals);