写了一个方法,觉得思路还可以...^^
是删除一个一维数组中,如果出现连续出现的相同元素就删除掉,自己定义的是连续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);// 输出数组
是删除一个一维数组中,如果出现连续出现的相同元素就删除掉,自己定义的是连续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);// 输出数组
回复Comments
作者:
{commentrecontent}