2

ASPクラシックスクリプトでは、ループがあります。各レコードセットには、「portos」(7、4、12)という配列があり、最高値と2番目に高い値を転送する必要があります。

今のところ、最大値を取得して、次のリンクに渡します。

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

残念ながら、それはループの外側でのみ機能します。内部では、最初のレコードセットのすべての番号を取得し、他のレコードセットには取得しません。これは1つの問題です。もう1つはタイトルにあります:リンクに2番目に高い値を取得するにはどうすればよいですか?

私はJavaに完全に精通していて、何日もの間これについて考えています...助けてください!

4

1 に答える 1

2

おそらく最も簡単な解決策は、配列を最高から最低に並べ替えてから、最初の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 に答える