У меня есть функция ниже
footerCallback: function ( row, data, start, end, display ) {
var api = this.api();
// Remove the formatting to get integer data for summation
var intVal = function ( i ) {
return typeof i === 'string' ?
i.replace(/[\$,]/g, '')*1 :
typeof i === 'number' ?
i : 0;
};
var i;
for (i = 1; i <=96; i++) {
if (api.column(i).data().length){
console.log('[+] api.column( i ).data()');
console.log(api.column( i ).data());
var total = api.column( i ).data().reduce( function (a, b) {
console.log( intVal(a) + intVal(b));
return intVal(a) + intVal(b);
})
}
else {
total = 0
};
// Total over this page
if (api.column(i).data().length){
var pageTotal = api.column( i, { page: 'current'} ).data().reduce( function (a, b) {
return intVal(a) + intVal(b);
})
}
else{
pageTotal = 0
};
// Update footer
$( api.column(i).footer() ).html(total);
}
// Total over all pages
},
Она суммирует значения в столбце и добавляет их к итогу.Итак, у меня есть две версии.Тот, который работает, тот, который нет.Точно такой же код, который используется на обеих страницах
Рабочая консоль.Log
Сломанная консоль.Log
Ошибка: Uncaught TypeError: Reduce of empty array with no initial value
Я заметил, что сломанный текст имеет красный текст и имеет двойнойкавычки вокруг каждого 0 или 1.
Странно то, что ... сломанная версия выполняет работу в той же степени, что и числа для итогов, но из-за ошибки страница все еще не работает