用js编写一个方法,去掉一个数组的重复元素

下面是我自己写的,刚学完js练练手。调试过,发现tmp等于数组里的第二个1并且arr1[0]等于1时,不等的条件语句竟然进去了何解啊?麻烦各位帮我看看问题出在哪了,谢谢各... 下面是我自己写的,刚学完js练练手。 调试过,发现tmp等于数组里的第二个1 并且arr1[0]等于1时,不等的条件语句竟然进去了 何解啊? 麻烦各位帮我看看问题出在哪了,谢谢各位了。 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; }我将问题简化了一下 <script type="text/javascript"> var tmp=''; var arr=[1,2,'abc',1]; var arr1=[]; tmp=arr.splice(0,1);//意思就是 要那个1 arr1.push(tmp);//意思就是把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> 展开
 我来答
行雯姚秀媚
2020-01-29 · TA获得超过3718个赞
知道大有可为答主
回答量:3089
采纳率:25%
帮助的人:235万
展开全部
说实话,没看完,但js中,有等号和全等的区分,1==‘1’是正确的,1===‘1’是错误的。同理,你要用!==来弄。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式