各位老大,小弟遇到一个棘手问题,想实现分组求和,用因为很多数据时用户手动输入的,所以直接用sql的group不可能实现如何用javascript实现这个问题呢。简单的说就是这样
网页中有这样一组
a    1
a    2
b    1
b    3
c    5
最后用javascript算出来之后得到字符串sum="a=3/b=4/c=5".a,b,c的排列很整齐,不会出现类似这样
a   1
b   1
a   2
的数据。
求达人帮助。
  

解决方案 »

  1.   

    不太明白~<input name="a" value="1"/>
    <input name="a" value="2"/>
    var str="";
    var sum=0;
    var inputsa  = document.getElementByName("a");
    for(var i=0;i<inputsa.length;i++){
    sum+=parseInt(inputs[i].value)
    }
    str+="a="+sum;
      

  2.   

    就直接用以个JS对象保存唯一键var o={
         v:{}
         ,add :funcion(key,value){if(!v[key])v[key]=0;v[key]+=value}
         ,toString:functio(){var s='';for(var k in v){s+=k+'='+v[k]+'/';}return s;}
    };
    所有单项的值反复调用 o.add  比如 o.add('a',1),o.add('a',3)
      

  3.   

    谢谢楼上的几位,不过好像和我要的结果不太一样,可能我说的不太明白,简单的说是这样的
    <input type='text' id='v1' name='v' value='1'><input type='text' id='a1' name='a' value='a'>
    <input type='text' id='v2' name='v' valu=='1'><input type='text' id='a2' name='a' value='a'>
    <input type='text' id='v3' name='v' valu=='1'><input type='text' id='a3' name='a' value='b'>
    <input type='text' id='v4' name='v' valu=='2'><input type='text' id='a3' name='a' value='b'>
    <input type='text' id='v5' name='v' valu=='3'><input type='text' id='a3' name='a' value='c'>
    <input type='text' id='sum'>最后通过脚本,计算出document.all.sum是以的value="a=2/b=3/c=3",既类似sql的select sum(v)group by a
      

  4.   

    你是要实现 "select sum(v) group by a" 还是只是得到这个结果?<input type='text' id='sum' value="a=2/b=3/c=3"> ?
      

  5.   

    便利两组数据 变成这样一个数组 new Array(a:Array{1,2},b:{1,3},c:{5})
    最后累加不就完了。。
      

  6.   

    谢谢6楼的,我要的是这个结果<input type='text' id='sum' value="a=2/b=3/c=3"> 
    我也想的是累加,应该很容易啊,为什么我变来变去就是有问题,好像脑子有点傻了。
      

  7.   

    <html><head> 
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
    window.onload = (function(){
        var s=0,n="";
        $("input + input[name=a]").each(function(){
            s=0;
            if($("input + input[value="+$(this).attr("value")+"]").index(this)>0){return;}
            $("input + input[value="+$(this).attr("value")+"]").each(function(){
                s+=parseInt($(this).prev().attr("value"));
            });
            n+=$(this).attr("value")+"="+s+"/";
        });
        $("#sum").val(n.substr(0,n.length-1));
    });</script></script>
    <style> 
    </style></head>
    <body>
    <input type='text' id='v1' name='v' value='1'> <input type='text' id='a1' name='a' value='a'> 
    <input type='text' id='v2' name='v' value='1'> <input type='text' id='a2' name='a' value='a'> 
    <input type='text' id='v3' name='v' value='1'> <input type='text' id='a3' name='a' value='b'> 
    <input type='text' id='v4' name='v' value='2'> <input type='text' id='a3' name='a' value='b'> 
    <input type='text' id='v5' name='v' value='3'> <input type='text' id='a3' name='a' value='c'> 
    <input type='text' id='sum'> 
    </body ></html>
      

  8.   

    谢谢楼上的大侠,原来还可以这样写,看来我的javascript还属于初级水平。分给你了。谢谢了。
    等等,第一次发帖,要如何给分?是不是按“结帖”就有选择分给谁?