删除一维数组中,连续出现的相同元素

      Flash 2004-11-8 15:40
写了一个方法,觉得思路还可以...^^
是删除一个一维数组中,如果出现连续出现的相同元素就删除掉,自己定义的是连续3个就删除

var array = [0, 1, 1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 0, 5, 5, 5, 5];
var last:Number;
var count:Number;
function remove ()
{
    for (var i = 0; i < array.length; i++)// 从头循环
    {
        
        if (i == array.length)// 如果查到最后一个了,就跳出递归
        {
            return true;
        }
        else
        {
            if (array[i] == last) // 如果当前数于最近数相等
            {
                if ((++count) >= 3 && (array[i + 1] != last))// 次数大于等于3,并且后一个数不等于最近数
                {    
                    array.splice (i - count + 1, count);// 删除数据
                    return remove ();// 重头再找
                    
                }
            }
            else// 如果不相等
            {
                last = array[i];// 那么当前数等于最近数
                count = 1;// 出现次数为1    
            }
        }
    }
}
remove ();
trace (array);// 输出数组
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}