View as "text/plain" | Blame | Last modification | View Log | RSS feed
/*** Fairly simply, this plug-in will take the data from an API result set* and sum it, returning the summed value. The data can come from any data* source, including column data, cells or rows.** Note that it will attempt to 'deformat' any string based data that is passed* into it - i.e. it will strip any non-numeric characters in order to make a* best effort attempt to sum all data types. This can be useful when working* with formatting numbers such as currency. However the trade-off is that no* error is thrown if non-numeric data is passed in. You should be aware of this* in case unexpected values are returned - likely the input data is not what is* expected.** @name sum()* @summary Sum the values in a data set.* @author [Allan Jardine](http://sprymedia.co.uk)* @requires DataTables 1.10+** @returns {Number} Summed value** @example* // Simply get the sum of a column* var table = $('#example').DataTable();* table.column( 3 ).data().sum();** @example* // Insert the sum of a column into the columns footer, for the visible* // data on each draw* $('#example').DataTable( {* drawCallback: function () {* var api = this.api();* $( api.table().footer() ).html(* api.column( 4, {page:'current'} ).data().sum()* );* }* } );*/jQuery.fn.dataTable.Api.register( 'sum()', function ( ) {return this.flatten().reduce( function ( a, b ) {if ( typeof a === 'string' ) {a = a.replace(/[^\d.-]/g, '') * 1;}if ( typeof b === 'string' ) {b = b.replace(/[^\d.-]/g, '') * 1;}return a + b;}, 0 );} );