Heim > Artikel > Web-Frontend > js löscht doppelte Elemente in einem Array und behält eine (zwei Implementierungsideen)_Javascript-Kenntnisse bei
Zum Beispiel: var student = ['qiang','ming','tao','li','liang','you','qiang','tao'];
Die erste Idee ist: Durchlaufen Sie das zu löschende Array arr, fügen Sie die Elemente jeweils in ein anderes Array tmp ein und erst nachdem festgestellt wurde, dass das Element in arr nicht vorhanden ist, kann es in tmp eingefügt werden
Es werden zwei Funktionen verwendet: for ...in und indexOf()
<script type="text/javascript"> 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){ tmp.push(arr[i]); } } return tmp; } </script>
Die zweite Idee ist: Durch den Austausch der Elementwerte und Schlüsselpositionen des Zielarrays arr werden die doppelten 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>