下面是我自己写的,刚学完js练练手。
调试过,发现tmp等于数组里的第二个1 并且arr1[0]等于1时,不等的条件语句竟然进去了
何解啊?
//////////////////////////////////////我简化了我的问题
<script type="text/javascript">
var tmp='';
var arr=[1,2,'abc',1];
var arr1=[];
tmp=arr.splice(0,1);
arr1.push(tmp);
//tmp=arr.splice(2,1); //先注释这句运行一遍,在不注释运行一遍
if (tmp!=arr1[0])
{
alert('tmp是:'+tmp+' '+'arr1[0]是:'+arr1[0]);
alert('不等于');
};
alert('tmp的类型是:'+typeof(tmp)+' arr[0]的类型是:'+typeof(arr1[0]));
</script>
////////////////////////////////取消注释 在运行 结果就通过条件了,为什么呢!!
麻烦各位帮我看看问题出在哪了,谢谢各位了。
var arr=[1,2,'abc',1,3,'abc'];
alert(deleteRepeatElement(arr));
function deleteRepeatElement(arr)
{
var arr1=[];
var tmp='';//存放用
var a=0;//计数用
for (var i = 0; i < arr.length; i++)
{
tmp=arr.splice(0,1);
if(arr1.length==0)//将最开始的数组得第一个元素放入arr1
{
arr1.push(tmp);
tmp='';
}
else
{
for (var j = 0; j < arr1.length; j++)
{
if(tmp!=arr1[j]) //这里有问题!!!当tmp等于arr的第四个1的时候竟然进来了!
{
a++;
}
}
if(a==arr1.length)
{
arr1.push(tmp);
}
tmp='';
i=-1;
a=0;
}
}
return arr1;
}