求js一算法:如下数组长度一样
var arrName = new Array('A','C','D','A','C','B'.....)
var arrCount = new Array('20','30','40','20','60','10'.....)
var arrFlag = new Array('true','false','true','false','false','true'.....)arrName数组中找出相同的名称,汇总arrCount对应的项,arrFlag为标记条件
即使arrName名称相同如果arrFlag不相同则当做别一名称。最终结为
arrName : A-true,A-false,B-true,c-false
arrCount: 20 ,   40,     60,    90

解决方案 »

  1.   

    结果怎么来的!
    是每个数组都一一对应吗?
    还有你这个设计不到算法吧!就是循环找到数组相同的元素,先把arrName 与arrFlag 合并成一个数组
    !然后数组内循环,在循环过程中移除一样的数组元素,如果数组超过千条!用js是没办法解决的,会报告js错误!因为那样的话循环次数太多了!超过了处理能力!
      

  2.   

    汗,其实我没理解……按我的理解写了点代码
    var arrName = new Array('A','C','D','A','C','B') 
    var arrCount = new Array('20','30','40','20','60','10') 
    var arrFlag = new Array('true','false','true','false','false','true') 
    var obj = {};
    var len = arrName.length;
    for(var i=0;i<len;i++)
    {
    var arr = arrName[i]+"-"+arrCount[i]+arrFlag[i];
    if(!obj[arr])
    obj[arr]='';
    }var str = new Array();
    for(var key in obj)
    str.push(key);

    str.sort();
    document.write(str.join("<br />"));
      

  3.   


    var arrName = new Array('A','C','D','A','C','B') 
    var arrCount = new Array('20','30','40','20','60','10') 
    var arrFlag = new Array('true','false','true','false','false','true') 
    var NewArr= new Array();
    /*把原来的数组合并成新数组*/
    for(var i=0;i<arrName.length;i++)
    {  
       NewArr[i]=arrName[i]+"-"+arrFlag[i];
       NewArr[i].prototype.Count=arrCount[i]; 
    }
    arrName.length=0;//清空arrName数组
    NewArr.sort(); //NewArr排序以便优化程序
    /*删除原来重复数组元素,并把同样元素的Count值相加保存在数组属性中*/
    for(var i=NewArr.length;i>0;i--)
    {
        if(NewArr[i]==NewArr[i-1])
         {
            NewArr[i-1].Count=(parsInt(NewArr[i].Count)+parsInt(NewArr[i-1].Count)).toString();
            NewArr.remove(i);//或者NewArr.splice(i-1,1)
            
         }
    }
    arrCount.length=0;//清空arrCount数组
    /*构造结果数组*/
    for(var i;i<NewArr.length;i++)
    {
      arrName[i]=NewArr[i];
      arrCount[i]=NewArr[i].Count;}