DataTables: Uncaught TypeError: Уменьшение пустого массива без начального значения - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть функция ниже

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

enter image description here

Сломанная консоль.Log

Ошибка: Uncaught TypeError: Reduce of empty array with no initial value

enter image description here

Я заметил, что сломанный текст имеет красный текст и имеет двойнойкавычки вокруг каждого 0 или 1.

Странно то, что ... сломанная версия выполняет работу в той же степени, что и числа для итогов, но из-за ошибки страница все еще не работает

1 Ответ

0 голосов
/ 27 сентября 2019

Удаление следующего сработало - оно не использовалось, но все еще вызывало проблему

 // 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
        };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...