主题:  紧急求助!!用splice将数组切割后,怎么判空?(已解决)

MythColor

职务:普通成员
等级:1
金币:0.0
发贴:43
注册:2003/4/17 13:03:32
#12003/7/15 11:52:29
有一数组 a=(1,2,3,4,5,6,7,8,9),取出随机的前n个数,并且每次取完后,a为剩下的部分
取完为止. 我就是不知道该怎样写 判断取完的条件

this.onEnterFrame = function() {
n = Math.floor(Math.random()*a.length+1); //生成随机数n,不大于当前数组a的长度
gen = a.splice(0, n); //每次取出的n个数,即gen[0]到gen[n]
if( 判a为空的条件 ){
this.onEnterFrame = null; //取完之后停止
}
}
判a为空条件我试了几次都没成功,故向大家求教
1.如果写 a.length==0 , 用trace发现,当a[0]没有值时,a.length居然为1
2.如果写 a.length==1, 那么如果倒数第二次取完之后,恰好剩1个的话,这个值就取不出来了..
3.a==null 好像也不对....

迷惑ing......


编辑历史:[这消息被MythColor编辑过(编辑时间2003-07-15 13:39:19)]


janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
#22003/7/15 11:56:11
用intCount指示已经取出了几个数,取出一个它就自加1
if(intCount==9) //取完了



MythColor

职务:普通成员
等级:1
金币:0.0
发贴:43
注册:2003/4/17 13:03:32
#32003/7/15 13:25:31
啊,这样啊....嗯....

有没有其他的方法啊?不要外加变量?

另外,涂料兄的方法只能适用于比较简单的情况,我的实际问题其实不是这么简单,数组 a 是动态变化的,每次取出之后都有新元素加入数组,也可能不加,随机的

这样的化,设置计数器就毫无意义了...



MythColor

职务:普通成员
等级:1
金币:0.0
发贴:43
注册:2003/4/17 13:03:32
#42003/7/15 13:41:00
不好意思,判断条件就是 a.length==0

我开始的时候是因为有其他代码,影响了数组...所以用 a.length==0 判断才失败了...
刚刚仔细检查了一下,弄好了...