在列中查找最小值

时间:2010-10-27 01:43:58

标签: javascript jquery html html-table

我有一个包含整数的HTML表格列。使用JavaScript或JQuery获取最小值的最有效方法是什么?

3 个答案:

答案 0 :(得分:9)

使用jQuery,您可以use the .map() methodthe .get() method获取整数数组,then .apply()数组作为参数for Math.min以获得最小值。

这假定您需要表中的第一列。选择器可能需要根据您想要的列进行更改。

示例: 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 );

没有jQuery,试试这个:

示例: 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 );

答案 1 :(得分:1)

非jquery回答(并且不保证它“效率最高”,但不应该坏):

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;
  }
 }

答案 2 :(得分:0)

我会使用纯JavaScript,遍历表格的每一行,查看您感兴趣的列并找到最小值:

function getColumnMin(tableId, columnIndex) {
  var table = document.getElementById(tableId);
  var rows = table.getElementsByTagName('tr');

  var min = Infinity;
  for (var i = 0; i < rows.length; i++) {
    var cols = rows[i].getElementsByTagName('td');
    var value = (cols[columnIndex].firstChild.nodeValue | 0); // force to integer value
    if (value < min)
      min = value;
  }
  return min;
}

这假定每个<td>只包含一个值,而不包含其他HTML标记。