算法,高手来试试!

oasis_wen 2008-07-05 04:14:59
求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

...全文
96 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
oasis_wen 2008-07-09
  • 打赏
  • 举报
回复
问题自已解决了,还是要谢谢大家!
qiuming0306 2008-07-06
  • 打赏
  • 举报
回复

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;

}

ftpdev 2008-07-05
  • 打赏
  • 举报
回复
汗,其实我没理解……按我的理解写了点代码


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 />"));
oasis_wen 2008-07-05
  • 打赏
  • 举报
回复
每个数组都一一对应,数组中的数量不会超过300条
要实现这种汇总的功能,给个思路
qiuming0306 2008-07-05
  • 打赏
  • 举报
回复
结果怎么来的!
是每个数组都一一对应吗?
还有你这个设计不到算法吧!就是循环找到数组相同的元素,先把arrName 与arrFlag 合并成一个数组
!然后数组内循环,在循环过程中移除一样的数组元素,如果数组超过千条!用js是没办法解决的,会报告js错误!因为那样的话循环次数太多了!超过了处理能力!

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧