Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find Minimum Value in a Column

I have an HTML table column containing integers. What's the most efficient way to get the minimum value using JavaScript or JQuery?

like image 552
T. Brown Avatar asked Oct 27 '10 01:10

T. Brown


2 Answers

Using jQuery, you could use the .map() method with the .get() method to get an Array of integers, then .apply() the Array as the arguments for Math.min to get the minimum.

This assumes that you want the first column in the table. Selector may need to change depending on which column you want.

Example: http://jsbin.com/iyiqa3/

var values = $('#myTable tr > td:first-child').map(function() {
    return parseInt( $.text( [this] ) );
}).get();

var minimum = Math.min.apply( null, values );

Without jQuery, try this:

Example: http://jsbin.com/iyiqa3/2/

var values = [];

var trs = document.getElementById('myTable').getElementsByTagName('tr');

for( var i = 0, len = trs.length; i < len; i++ ) {
    values.push( parseInt( trs[ i ].cells[ 0 ].innerHTML ) );
}

var minimum = Math.min.apply( null, values );
like image 137
user113716 Avatar answered Sep 28 '22 19:09

user113716


Non-jquery answer (and no guarantees it is "the most" efficient, but shouldn't be bad):

var min, rowNo = null;

var a = table.getElementsByTagName("TR");
for (var i=0; i<a.length; i++) {
 var td = a[i].childNodes[columnNo];
 var val = parseInt(td.innerHTML);
 if (rowNo == null || val < min) {
  min = val;
  rowNo = i;
  }
 }
like image 39
rob Avatar answered Sep 28 '22 18:09

rob