Maison >interface Web >js tutoriel >Comment puis-je rechercher efficacement les valeurs en double dans un tableau JavaScript ?

Comment puis-je rechercher efficacement les valeurs en double dans un tableau JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-15 15:20:23369parcourir

How Can I Efficiently Find Duplicate Values in a JavaScript Array?

Recherche de valeurs non uniques dans un tableau

Identifier les valeurs en double dans un tableau JavaScript est une tâche courante. Bien que parcourir le tableau et comparer chaque élément aux autres puisse sembler une approche simple, cela peut s'avérer inefficace, en particulier pour les grands tableaux.

Une solution optimisée consiste à trier d'abord le tableau. Cette étape réduit la complexité de O(n^2) à moins de O(n^2) en regroupant des éléments similaires.

Une fois le tableau trié, vous pouvez le parcourir et vérifier si l'élément actuel correspond à l'élément suivant ou précédent. Si elles sont identiques, la valeur est considérée comme un doublon et peut être ajoutée à une liste de résultats.

const findDuplicates = (arr) => {
  let sorted_arr = arr.slice().sort();
  let results = [];
  for (let i = 0; i < sorted_arr.length - 1; i++) {
    if (sorted_arr[i + 1] == sorted_arr[i]) {
      results.push(sorted_arr[i]);
    }
  }
  return results;
};

Par exemple, étant donné un tableau comme [9, 9, 111, 2, 3, 4, 4, 5, 7], cette approche identifierait et renverrait efficacement les valeurs en double : [9, 4].

En tirant parti du tri et de la comparaison des éléments adjacents, cette solution offre un méthode rapide pour trouver des valeurs non uniques dans un tableau.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn