用js编写一个方法,去掉一个数组的重复元素
答案:2 悬赏:70 手机版
解决时间 2021-02-19 17:19
- 提问者网友:浪荡绅士
- 2021-02-19 10:40
下面是我自己写的,刚学完js练练手。<br>调试过,发现tmp等于数组里的第二个1 并且arr1[0]等于1时,不等的条件语句竟然进去了<br>何解啊?<br><br>麻烦各位帮我看看问题出在哪了,谢谢各位了。<br><br>var arr=[1,2,'abc',1,3,'abc'];<br>alert(deleteRepeatElement(arr));<br><br>function deleteRepeatElement(arr)<br>{<br> var arr1=[];<br> var tmp='';//存放用<br> var a=0;//计数用<br><br> for (var i = 0; i < arr.length; i++) <br> {<br> tmp=arr.splice(0,1);<br> if(arr1.length==0)//将最开始的数组得第一个元素放入arr1<br> {<br> arr1.push(tmp);<br> tmp='';<br> }<br> else<br> {<br> for (var j = 0; j < arr1.length; j++) <br> {<br> if(tmp!=arr1[j]) //这里有问题!!!当tmp等于arr的第四个1的时候竟然进来了!<br> {<br> a++;<br> }<br> }<br> if(a==arr1.length)<br> {<br> arr1.push(tmp);<br> }<br> tmp='';<br> i=-1;<br> a=0;<br> }<br> }<br> return arr1;<br>}<br><br>我将问题简化了一下<br><br><script type="text/javascript"><br>var tmp='';<br>var arr=[1,2,'abc',1];<br>var arr1=[];<br><br>tmp=arr.splice(0,1);//意思就是 要那个1<br>arr1.push(tmp);//意思就是把tmp放到数组里头<br><br>//tmp=arr.splice(2,1); //先注释这句运行一遍,在不注释运行一遍<br><br>if (tmp!=arr1[0]) <br>{<br> alert('tmp是:'+tmp+' '+'arr1[0]是:'+arr1[0]);<br> alert('不等于');<br>};<br>alert('tmp的类型是:'+typeof(tmp)+' arr[0]的类型是:'+typeof(arr1[0]));<br></script>
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-02-19 11:41
说实话,没看完,但js中,有等号和全等的区分,1==‘1’是正确的,1===‘1’是错误的。同理,你要用!==来弄。
全部回答
- 1楼网友:第幾種人
- 2021-02-19 12:56
从i=0开始循环 看s[i]有没有被取到过 如果没取到tmp就增加一个元素s[i]
o[s[i]]就是用来判断s[i]有没有出现过 所以取到一次后就把o[s[i]]
设成1
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯