主题:  去除最大数过程为什么不对?

sywh

职务:普通成员
等级:1
金币:0.0
发贴:66
#12002/3/11 13:50:52
不好意思了,昨天刚问了个求最大数的,今天又问了一个去除最大数的,唉,不是这世界变得太快,而是我真的不明白。代码如下:
function bmax (a) { \\a为一数组
var i,a;
for (i=0;i<=a.length;i++) {
if (a[i]==max (a)) { \\max (a)就是数组a的最大数
a.splice(i,1); \\如果a[i]等于最大数了,那么删除a[i]
i=a.splice+2 \\把i赋为a的长度加2,目的是退出循环,以防数组中有同样的数
}
}
return a;
}
a = new Array(23, 234, 2, 435, 245, 23, 45, 2, 45, 67, 687, 56);
trace (bmax (a))竟然得23,234,2
哪位仁兄帮我看看,先谢谢了!



realbobo

职务:普通成员
等级:1
金币:1.0
发贴:180
#22002/3/11 14:45:39
你并没有判断将数组中的最大数并将其复值给a[i]
该在循环中加个判断句。



sywh

职务:普通成员
等级:1
金币:0.0
发贴:66
#32002/3/11 14:51:17
判断了呀,if (a[i]==max (a)) ,如果第(i)个元素等于a的最大数,其中max函数已定义过了,而且正确。



realbobo

职务:普通成员
等级:1
金币:1.0
发贴:180
#42002/3/11 14:52:58
for (i=0;i<=a.length;i++) {
if(MAXMAX=a[i[;
else{
a[i]=MAX;
}
}
if (a[i]==max (a)) {
a.splice(i,1);
i=a.splice+2
}
}
return a;



sywh

职务:普通成员
等级:1
金币:0.0
发贴:66
#52002/3/11 16:08:16
请问:
if(MAXMAX=a[i];
else{
a[i]=MAX;
}
中的MAX是什么,是不是一个新的变量,上面的这些判断有什么用呢?



realbobo

职务:普通成员
等级:1
金币:1.0
发贴:180
#62002/3/11 16:45:51
MAX是个变量,这个判断找出数组中最大值并赋值给MAX。



金山羊

职务:普通成员
等级:4
金币:10.0
发贴:827
#72002/3/11 17:22:22
function bmax (c_array) {
    var temp,temp_num,i;
    temp = c_array[ 0 ];
    for(i = 1;i < c_array.length; i++)
    {
        if(temp < c_array[i])
        {
            temp = c_array[i];
            temp_num = i;
        }
    }
    c_array.splice(temp_num,1);
//    return c_array;
}
myA = new Array(23, 234, 2, 435, 245, 23, 45, 2, 45, 67, 687, 56);
bmax(myA);
trace(myA);
//the array transfer address in function.

编辑历史:[这消息被goldgoat编辑过(编辑时间2002-03-11 17:25:54)]
[这消息被goldgoat编辑过(编辑时间2002-03-11 17:27:31)]

5d.cn
FLASHDEP
TECHNOLOGY SUPPORT
JAVA/ACTIONSCRIPT/javascript
CFML/JSP/COLDFUSION/FLASH REMOTING
JRUN/COLDFUSIONMX
FLASH/DREAMWEARER

janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#82002/3/11 21:25:49
还是存在老问题,var a取代了原来的数组对象,a.lenght=0!



sywh

职务:普通成员
等级:1
金币:0.0
发贴:66
#92002/3/12 15:48:30
是FLASH5的BUG吗?



金山羊

职务:普通成员
等级:4
金币:10.0
发贴:827
#102002/3/12 16:28:18
当然不是


5d.cn
FLASHDEP
TECHNOLOGY SUPPORT
JAVA/ACTIONSCRIPT/javascript
CFML/JSP/COLDFUSION/FLASH REMOTING
JRUN/COLDFUSIONMX
FLASH/DREAMWEARER