Contoh dalam artikel ini menerangkan cara memadamkan elemen pendua daripada tatasusunan menggunakan JavaScript. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:
Di sini saya berkongsi soalan temu duga bahagian hadapan yang kerap ditanya, yang kebanyakannya melaksanakan javascript untuk memadamkan elemen pendua dalam tatasusunan. Semoga ia membantu untuk pemula
//数组去重的方法 Array.prototype.unique=function(){ //集中声明变量 var oldArr=this, newArr=[oldArr[0]], len=oldArr.length, i=1; //过滤空数组 if(!len) return this; //过滤重复元素 for(;i<len;i++){ newArr.indexOf(oldArr[i])<0 ? newArr.push(_this) : ''; } //返回过滤后的数组没有影响原数组 return newArr; } var arr=['a','a','b','a','c','d']; console.log(arr.unique()); //["a", "b", "c", "d", unique: function]
Walaupun terdapat banyak di Internet dan yang saya tulis tidak begitu bagus, lagipun, logik yang saya tulis adalah jelas dan boleh dikembangkan mengikut logik, seperti melanjutkan kepada elemen objek untuk membuang pendua atau mengendalikan pelbagai tatasusunan pada masa yang sama, dsb. Saya akan meletakkannya di sini Anda boleh membandingkan secara menyeluruh beberapa kaedah yang ditulis oleh orang lain
Kaedah 1:
function oSort(arr) { var result ={}; var newArr=[]; for(var i=0;i { if(!result[arr[i]]) { newArr.push(arr[i]) result[arr[i]]=1 } } return newArr }
Kaedah 2:
Lintas arr tatasusunan untuk dipadamkan, dan letakkan elemen ke dalam tatasusunan lain masing-masing hanya selepas menilai bahawa elemen itu tidak wujud dalam arr, ia boleh diletakkan ke dalam tmp
Dua fungsi digunakan: untuk ...in dan indexOf()
var student = ['qiang','ming','tao','li','liang','you','qiang','tao']; function unique(arr){ // 遍历arr,把元素分别放入tmp数组(不存在才放) var tmp = new Array(); for(var i in arr){ //该元素在tmp内部不存在才允许追加 if(tmp.indexOf(arr[i])==-1){ } } return tmp; }
Kaedah 3:
Menukar nilai elemen dan kedudukan utama arr tatasusunan sasaran secara automatik akan memadamkan elemen pendua Pertukaran akan kelihatan seperti: array('qiang'=>1,'ming'=>1,' tao'. =>1)
<script type="text/javascript"> var student = ['qiang','ming','tao','li','liang','you','qiang','tao']; function unique(arr){ var tmp = new Array(); for(var m in arr){ tmp[arr[m]]=1; } //再把键和值的位置再次调换 var tmparr = new Array(); for(var n in tmp){ tmparr.push(n); } return tmparr; } </script>
Kaedah 4
/** * 去除数组重复元素 */ function uniqueArray(data){ data = data || []; var a = {}; for (var i=0; i<data.length; i++) { var v = data[i]; if (typeof(a[v]) == 'undefined'){ a[v] = 1; } }; data.length=0; for (var i in a){ data[data.length] = i; } return data; }
Kaedahnya serupa, tetapi kaedah ketiga agak bijak~
Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.