分享、学习、提高
2008/02/13 21:44
上个月贴了个 PHP数组重复值相加计算,前几天打算用asp实现,本来以为没什么问题,在实际做的时候才发现,asp的数组不支持 a("RMB")这种格式。从这篇文章:ASP页面内VBScript和JScript的交互得到启发后,使用Jscript的Server端来写,还好顺利完成了。但完成之后的排序又伤脑筋了,如果是用php的话,简单的一个asort就搞定了,但是Vbscript和Jscript都没有,只有Jscript中有个sort函数,还没法直接用。参考JavaScript实现多维数组多键值排序方法,后来改为二维数组实现。在实际测试中,效率还可以。以下是代码:)
<script language="JScript" runat="server" type="text/javascript">
function dealtxt(txt){
  var my_array = new Array();
  var my_array2 = new Array();
  var arrtxt = txt.split(",");
  var arrnum = arrtxt.length;
  for(i=1;i<arrnum;i++){
    arrtxt2 = arrtxt[i].split("|");
    stxt = arrtxt2[0];
    snum = Math.ceil(arrtxt2[1]);
    if(my_array[stxt]==undefined){
    my_array[stxt] = snum;
    }else{
    my_array[stxt] += snum;
    }
  }
  i=0;
   for (key in my_array)   {
     my_array2[i]=new Array();
    my_array2[i][0] =  key;
    my_array2[i][1] =  my_array[key];
    i++;
   }

    my_array2.sort( function(x, y){
    return (x[1]>y[1])?-1:1
  });

  var s= "",txt1,txt2;
  for(i=0;i<my_array2.length;i++){
    txt1 = my_array2[i][0];
    txt2 = my_array2[i][1];
    s = s + ',' + txt1 + ',' + txt2;
  }
  return s;
}
</script>
<%
strTxt = ",USD|140,RMB|212,RMB|152,RMB|50,JPY|200,RMB|321,USD|210"
strTxt = dealtxt(strTxt)
Response.write strTxt
%>


就是不知道在asp中实现它有没有更好的办法了。
发表评论
表情
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]