JS — 数组去重(4种方法)
第一种:双重循环
var strCode='zxcvbnmasdfghjklopiuytrewqAWEDRFTGYHUJIK'; var str=''; for(var i=0;i<4;i++){ var rand=Math.round(Math.random()*61); if(str.indexOf(strCode.charAt(rand))==-1){ str+=strCode.charAt(rand); }else{ i--; } } console.log(str);
第二种:新数组
var ary=[1,2,3,3,2,3,4,5]; var ary1=[]; for(var i=0;i<ary.length;i++){ if(ary1.indexOf(ary[i])==-1){ ary1.push(ary[i]); } } alert(ary1);
第三种:可以记录次数的对象去重
var ary=[1,2,3,3,2,3,4,5]; var obj={}; for(var i=0;i<ary.length;i++){ var cur=ary[i]; if(obj[cur]){ obj[cur]++; }else{ obj[cur]=1; } } var ary=[]; for(var attr in obj){ ary.push(attr); } alert(ary);
第四种:sort 思想
var ary=[1,2,3,3,2,3,4,5]; ary.sort(function(a,b){return a-b;}); for(var i=0;i<ary.length;i++){ if(ary[i]===ary[i+1]){ ary.splice(i,1); i--; } } alert(ary);
原文链接:http://www.qdfuns.com/notes/42231/be94f6921a24f86bd3dcedbe93ab75ef.html