2

在 ASP Classic 脚本中,我有一个循环。在每个记录集中都有一个名为“portos”(7、4、12)的数组,我需要在其中转发最高值和第二高值。

现在我得到最大值并将其传递给一个链接:

   <script type="text/javascript">
   var v=[<%=portos %>]
   var porto=parseInt((Math.max.apply(0,v)), 10);
   document.links["link"].href += porto;
   </script>
   <a id="link" href="somepage.asp?maxv=">Link</a>

不幸的是,它只能在循环之外工作。在里面,我得到了第一个记录集中的所有数字,而其他记录集中没有。这是一个问题。另一个在标题中:如何将第二高的值放入链接?

我对 Java 完全是个菜鸟,从那以后就一直在思考这个问题……请帮忙!

4

1 回答 1

2

可能最简单的解决方案是将数组从高到低排序,然后获取前两个成员:

// Array might be numbers or strings or a bit of both
var x = ['123', '14', 7, 4, '12', -3];

// Sort numbers from higest to lowest
function sortNumReversed(a, b) {

  // Ensure a and b are numbers, lots of ways to do this
  a = Number(a), b = Number(b);

  // Return result of comparison
  return b == a ? 0 : b < a? -1 : 1;
}

x.sort(sortNumReversed);

alert('Highest: ' + x[0] + '\nSecond highest: ' + x[1]);
于 2013-02-04T23:56:24.023 回答