ASP数组元素相加问题——在线等

joymerry 2005-04-12 11:28:32
如何将同一数组的不同元素相加后再赋值给某一元素?
例如:
arrNum(元素1,元素2,元素3,元素4...)中,元素1、2、3、4均为数字。
将元素1和元素3相加,将结果赋值给元素1。

我用arrNum(元素1)=arrNum(元素1)+arrNum(元素3),产生的结果是“元素1元素2”,怎么是合并了呢?我想相加的,是不是元素1、3的数值类型有问题?如果是,怎么强制转换呢?

高手帮忙哈~
...全文
167 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
scoutlin 2005-04-13
  • 打赏
  • 举报
回复
<%
MerList="101,102,103,101,102,104"
MerNumList="1,2,1,1,2,3"
arr1=split(merlist,",")
arr2=split(mernumlist,",")
dim arr3()
dim arr4()
k=0
redim preserve arr3(k)
redim preserve arr4(k)
for i=0 to ubound(arr1)
pos=inArray(arr1(i),arr3)
if pos=-1 then
redim preserve arr3(k)
redim preserve arr4(k)
arr3(k)=arr1(i)
arr4(k)=arr2(i)
k=k+1
else
arr4(pos)=cint(arr4(pos))+cint(arr2(i))
end if
next
function inArray(s,arr)
dim ii
inArray=-1
for ii=0 to ubound(arr)
if arr(ii)=s then
inarray=ii
exit function
end if
next
end function
for i=0 to ubound(arr3)
response.write arr3(i)
response.write ":"
response.write arr4(i)
response.write "<br>"
next
%>
joymerry 2005-04-13
  • 打赏
  • 举报
回复
3Q,88
lookatliu 2005-04-13
  • 打赏
  • 举报
回复
我没太看懂你的要求,今天太晚了,我要睡觉了,明天还要上班。如果有问题的话早上再帮你看吧~
晚安
joymerry 2005-04-12
  • 打赏
  • 举报
回复
OK了~ 我有个笨方法
用replace(字符串,",0,",",")就可以了^^
代码:
...
arrNewMerList(q)="0"
arrNewMerNumList(q)="0"
...
replace(字符串,",0,",",")
joymerry 2005-04-12
  • 打赏
  • 举报
回复
我的期望是将arrNewMerList中相同元素对应的arrNewMerNumList的值相加后,重新组成一个arrNewMerList元素不重复的数组。
你的改法不能满足我的设计,帮我看看~谢谢:)
lookatliu 2005-04-12
  • 打赏
  • 举报
回复
刚刚贴的有废代码再贴次给你
<%
MerList="101,102,103,101,102,104"
MerNumList="1,2,1,1,2,3"
arrNewMerList=split(MerList,",")
arrNewMerNumList=split(MerNumList,",")
for p=0 to ubound(arrNewMerNumList)
for q=p+1 to ubound(arrNewMerNumList)
if arrNewMerList(p)=arrNewMerList(q) then
arrNewMerNumList(p)=Cint(arrNewMerNumList(p))+Cint(arrNewMerNumList(q))
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~问题在这里
' arrNewMerList(q)=""
'arrNewMerNumList(q)=""
end if
next
next
%>
lookatliu 2005-04-12
  • 打赏
  • 举报
回复
这里你给他清空了,所以Cint会报错,去掉就好了。不过不知道结果满足你的要求不
arrNewMerList(q)=""
arrNewMerNumList(q)=""
lookatliu 2005-04-12
  • 打赏
  • 举报
回复
<%
MerList="101,102,103,101,102,104"
MerNumList="1,2,1,1,2,3"
arrNewMerList=split(MerList,",")
arrNewMerNumList=split(MerNumList,",")
for p=0 to ubound(arrNewMerNumList)
for q=p+1 to ubound(arrNewMerNumList)
Response.Write("p:"&p&"###"&arrNewMerList(p) &"q:"&q& "***"&arrNewMerList(q)& "<br>")
if arrNewMerList(p)=arrNewMerList(q) then
arrNewMerNumList(p)=Cint(arrNewMerNumList(p))+Cint(arrNewMerNumList(q))
Response.Write(arrNewMerNumList(p) & "&&&"& arrNewMerNumList(q)&"<br>")
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~问题在这里
' arrNewMerList(q)=""
'arrNewMerNumList(q)=""
end if
next
next

%>

joymerry 2005-04-12
  • 打赏
  • 举报
回复
CINT还是不行!
代码:
MerList="101,102,103,101,102,104"
MerNumList="1,2,1,1,2,3"
arrNewMerList=split(MerList,",")
arrNewMerNumList=split(MerNumList,",")
for p=0 to ubound(arrNewMerNumList)
for q=p+1 to ubound(arrNewMerNumList)
if arrNewMerList(p)=arrNewMerList(q) then
arrNewMerNumList(p)=arrNewMerNumList(p)+arrNewMerNumList(q)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~问题在这里
arrNewMerList(q)=""
arrNewMerNumList(q)=""
end if
next
next
lfx_001 2005-04-12
  • 打赏
  • 举报
回复
我用arrNum(元素1)=arrNum(元素1)+arrNum(元素3),产生的结果是“元素1元素2”,怎么是合并了

这分明是字符串相加的结果,要用CINT转换成数值型
lookatliu 2005-04-12
  • 打赏
  • 举报
回复
用Cint()转换下在加看看,不行的话,贴出代码来我看看,速度要快哦。我快睡了~

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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