Heim  >  Artikel  >  Web-Frontend  >  js löscht doppelte Elemente in einem Array und behält eine (zwei Implementierungsideen)_Javascript-Kenntnisse bei

js löscht doppelte Elemente in einem Array und behält eine (zwei Implementierungsideen)_Javascript-Kenntnisse bei

WBOY
WBOYOriginal
2016-05-16 16:39:021388Durchsuche

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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn