在列中查找最小值
Posted
技术标签:
【中文标题】在列中查找最小值【英文标题】:Find Minimum Value in a Column 【发布时间】:2011-05-01 01:43:30 【问题描述】:我有一个包含整数的 html 表格列。使用 javascript 或 JQuery 获得最小值的最有效方法是什么?
【问题讨论】:
【参考方案1】:使用 jQuery,您可以 use the .map()
method 和 the .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 用于使用apply()
将数组传递给 Math.min()
... 聪明。【参考方案2】:
非 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;
【讨论】:
【参考方案3】:我会使用纯 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 标记。
【讨论】:
每个td的nodeValue都是null。 @kennebec:哎呀,忘了firstChild
。谢谢。以上是关于在列中查找最小值的主要内容,如果未能解决你的问题,请参考以下文章