Guten Abend Karsko,
ich habe Dir eine kleine Methode geschrieben, mit der Du Deine Anforderung in JavaScript umsetzen kannst. Der Code ist hoffentlich hinreichend kommentiert.
function check_duplicate(array){
// Sortieren des Arrays.
var sorted_array = array.slice().sort();
// Duplikate.
var results = [];
for (var counter = 0; counter < array.length - 1; counter ++) {
if (sorted_array[counter + 1] == sorted_array[counter ]) {
// Duplikat dem Ergebnisarray hinzufügen.
results.push(sorted_array[counter]);
}
}
// Duplikate zurückgeben.
return results;
}
Taucht ein Element 2 mal auf, so wird es als ein Duplikat erkannt. Wenn ein Element mehr als 2 mal im Array enthalten ist, wird es erneut als Duplikat erkannt. Z.B.: [2,3,2,2] liefert als Ergebnis ein Array mit den Duplikaten [2,2], denn die 2 ist zweimal als Duplikat vorhanden.
Testen kannst Du diese Methode exemplarisch mit dem folgenden Code:
var array = [2, 5, 6, 7, 3, 2, 1, 5];
alert(has_duplicates(array));
if(check_duplicate(array).length > 0)
{
alert("Duplikate im Array: " + check_duplicate(array));
} else {
alert("Es gibt keine doppelten Elemente im Array!");
}
Wenn Du eine Boolean-Methode möchtest, die nur prüft, ob Duplikate vorhanden sind, empfehle ich folgende Erweiterung:
function has_duplicates(array){
return check_duplicate(array).length > 0;
}
Bei Rückfragen kannst Du Dich gerne wieder melden!
Viele Grüße
André, savest8