大家帮我看看关于JS中数组元素运算的问题

辅导费卡了 2003-05-08 11:08:20
我想下面的source二维数组中按照每个元素数组的第一个值进行重新运算,相同的合并。理论上应该最后aa数组的值是:(a,4),(b,1),但是现在是(a,4),(b,2)。我到底哪儿写错了?拜托各位大虾。
<SCRIPT LANGUAGE="JavaScript">
<!--
function a(){
var aa=new Array();
var source=new Array(Array("a","1"),Array("b","1"),Array("a","3"));
for(i=0;i<source.length;i++){
var item=new Array(source[i][0],source[i][1]);
if(aa.length==0){
aa.push(item);
continue;
}
for(k=0;k<aa.length;k++){
if(source[i][0]==aa[k][0]){
aa[k][1]=parseInt(aa[k][1])+parseInt(source[i][1]);
break;
}
if(k==aa.length-1){
aa.push(item);
}
}
}
for(i=0;i<aa.length;i++){
alert(aa[i][1]);
}
}
a();
//-->
</SCRIPT>
...全文
42 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyee 2003-05-08
  • 打赏
  • 举报
回复
function a(){
var aa=new Array();
var source=new Array(Array("a","1"),Array("b","1"),Array("a","3"));
source.sort()
while(true)
{
var item=source[0]
item[1]=parseInt(item[1])
source=source.slice(1)
while(true)
{
if(source.length==0||item[0]!=source[0][0])
{
aa.push(item)
break
} else {
item[1]+=parseInt(source[0][1])
source=source.slice(1)
}
}
if(source.length==0) break
}
for(i=0;i<aa.length;i++){
alert(aa[i][1]);
}
}

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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