请教zmud高人
比较数组。比如固定数组是test={a,b,c,d,e};
游戏中抓取了新的数组{b,e}.
请问如何比较 新数组在固定数组里所没有的。谢谢 #va diff;
#forall @new {#if (!%ismember(%i,@test)) {%additem(%i,@diff)}}
[ 本帖最后由 bluse 于 2010-11-11 11:02 AM 编辑 ] 注意默认的列表变量是用“|”来分隔项目的。 %forall? zmud462 没这函数吧, 是#forall吧?
还有就是462中不能直接 运算%additem(%i,@diff)。咋处理了.谢谢 原帖由 sizak 于 2010-11-11 10:58 AM 发表 http://pkuxkx.com/forum/images/common/back.gif
%forall? zmud462 没这函数吧, 是#forall吧?
还有就是462中不能直接 运算%additem(%i,@diff)。咋处理了.谢谢
%additem可以用 sigh,还是不能运算得到。我举个实例吧,多谢。
aa={1|2|3|4|5} 为固定的
a={1|2|3} 为抓取
#var diff {};#forall @new {#if (!%ismember(@a,@aa)) {%additem(%i,@diff)}}
#var diff {};#forall @new {#if (!%ismember(%i,@aa)) {%additem(%i,@diff)}}
都不行,是需要加点什么么。。。 原帖由 sizak 于 2010-11-11 11:29 AM 发表 http://edu.pkuxkx.com:8082/forum/images/common/back.gif
sigh,还是不能运算得到。我举个实例吧,多谢。
aa={1|2|3|4|5} 为固定的
a={1|2|3} 为抓取
#var diff {};#forall @a {#if (%pos(%i,@aa)) {%additem(%i,@diff)}}
我发现这样容易误判断。比如aa=10|9 a=1
会发生错误。可以用一个傻办法
aa=|@ aa|
#var diff {};#forall @a {#if (%pos("|%i|",@aa)) {%additem(%i,@diff)}}
[ 本帖最后由 oolong 于 2010-11-11 02:29 PM 编辑 ] 我的@new就是指你说的“新的数组”,还有列表一律用%ismember,%pos用来做一个完整字符串的寻找。
如果按你给的名字,把@new改成@a就行了。 成功了。。。感谢各位。
#if (!%ismember(@a,@aa))需要加判断:{#if (!%ismember(@a,@aa))>0 就行了。 原帖由 sizak 于 2010-11-11 04:19 PM 发表 http://www.pkuxkx.com/forum/images/common/back.gif
成功了。。。感谢各位。
#if (!%ismember(@a,@aa))需要加判断:{#if (!%ismember(@a,@aa))>0 就行了。
zmud462还不错嘛,还有ismember
页:
[1]
2