получить максимальное значение из таблиц данных

#javascript #datatables

Вопрос:

Я хотел бы попросить идеи о том, как получить максимальное число из определенного столбца и вернуть значок в другом столбце. Я использую rowCallback, поэтому, если есть максимальное число, статус изменится на активный(галочка), а остальные будут отмечены крестиком.

Вот мой желаемый результат: введите описание изображения здесь

Вот мой код:

 "rowCallback": function(row, data, num ) {
      
        if(parseInt(data["num"]) === max ){
            $('td:eq(3)', row).html('<a class="btn btn-link btn-success btn-just-icon btn-round"><i class="material-icons">check</i>');
        }
        else{
            $('td:eq(3)',row).html('<a class="btn btn-link btn-danger btn-just-icon btn-round"><i class="material-icons">highlight_off</i>');
            
        }
    },
 

Ответ №1:

  1. В идеале (если у вас есть доступ к данным до создания HTML-кода), вы должны один раз вычислить максимальное значение этого столбца и передать его скрипту.
  2. Если вы не можете этого сделать и вам нужно оставаться в JS, то API DataTables имеет метод .column, который вы можете использовать для извлечения данных. Так что вы можете сделать что-то вроде этого:
 var table = $('#example').DataTable();  // adjust a neccessary to get your table
 
    var max = table
        .column( 2 )
        .data()
        .reduce( function (a,b) {
            return Math.max(a,b);
        } );

 

Комментарии:

1. спасибо вам за ваш ответ. Можете ли вы показать мне, как это реализовать? Я предпочитаю вариант 2. Извините, действительно потерял прямо сейчас, впервые делаю такую реализацию на странице. Итак, могу ли я добавить его в свой rowcallBack? вот так? «Обратный вызов строки»: функция(строка, данные, число ) { var max = таблица 1 .столбец(2) .данные() .уменьшить( функция (a,b) { возвращает математический максимум(a,b); } ); если(синтаксический анализ(данные[«число»]) === макс ){ } остальное{ } },

2. Конечно, я был бы рад помочь вам в этом, но вы не предоставили много информации, чтобы помочь в этом 😉 Ваш код выглядит как код, но, возможно column(2) , его нужно скорректировать — это предполагает, что в 3d — столбцах есть данные, которые нас интересуют. Это индекс на основе 0, поэтому проверьте, нужно ли его обновлять (как я думаю, это будет)…

3. Я уже понял это. Я опубликую свой ответ позже