Das Beispiel in diesem Artikel beschreibt, wie Sie mit JavaScript doppelte Elemente aus einem Array löschen. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:
Hier teile ich eine häufig gestellte Front-End-Interviewfrage, bei der hauptsächlich Javascript implementiert wird, um doppelte Elemente in einem Array zu löschen. Ich hoffe, es hilft Anfängern
//数组去重的方法 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]
Obwohl es viele im Internet gibt und die von mir geschriebenen nicht sehr gut sind, ist die von mir geschriebene Logik klar und kann entlang der Logik erweitert werden, z. B. durch Erweitern auf Objektelemente zum Entfernen von Duplikaten oder Betreiben mehrerer Arrays zur gleichen Zeit usw. Ich werde sie hier veröffentlichen. Sie können mehrere von anderen geschriebene Methoden umfassend vergleichen
Methode 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 }
Methode 2:
Durchlaufen Sie das zu löschende Array arr und fügen Sie die Elemente jeweils in ein anderes Array tmp ein. Erst nachdem festgestellt wurde, dass das Element in arr nicht vorhanden ist, kann es in tmp platziert werden
Es werden zwei Funktionen verwendet: for ...in und 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; }
Methode 3:
Durch den Austausch der Elementwerte und Schlüsselpositionen des Zielarrays arr werden doppelte Elemente automatisch gelöscht. Der Austausch sieht folgendermaßen aus: 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>
Methode 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; }
Die Methoden sind ähnlich, aber die dritte Methode ist ziemlich clever~
Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.