Найти минимальное значение в столбце - PullRequest
6 голосов
/ 27 октября 2010

У меня есть столбец таблицы HTML, содержащий целые числа.Какой самый эффективный способ получить минимальное значение с помощью JavaScript или JQuery?

Ответы [ 3 ]

9 голосов
/ 27 октября 2010

Используя jQuery, вы можете использовать метод .map() с .get() методом , чтобы получить массив целых чисел, затем .apply()Массив в качестве аргументов для 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 голос
/ 27 октября 2010

Ответ без 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;
  }
 }
0 голосов
/ 27 октября 2010

Я бы пошел с простым 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...