Maison > interface Web > js tutoriel > Comment rechercher et renvoyer efficacement des valeurs uniques dans un tableau JavaScript ?

Comment rechercher et renvoyer efficacement des valeurs uniques dans un tableau JavaScript ?

Mary-Kate Olsen
Libérer: 2024-12-28 10:24:10
original
967 Les gens l'ont consulté

How to Efficiently Find and Return Unique Values in a JavaScript Array?

Recherche de valeurs uniques dans des tableaux JavaScript

Lorsque vous traitez des tableaux en JavaScript, il est souvent souhaitable de supprimer les valeurs en double pour garantir l'unicité. Voici un problème courant rencontré avec les tableaux JavaScript :

var numbers = [1, 2, 3, 4, 5, 1, 2];
numbers.getUnique(); // [1, 2, 3, 4, 5] (incorrectly includes 1 and 2)
Copier après la connexion

La méthode prototype fournie, Array.prototype.getUnique, tente de filtrer les doublons mais échoue lorsqu'elle rencontre une valeur nulle.

Pour comprenons le problème, inspectons le code :

Array.prototype.getUnique = function() {
  var o = {}, a = [], i, e;
  for (i = 0; e = this[i]; i++) {o[e] = 1};
  for (e in o) {a.push (e)};
  return a;
};
Copier après la connexion

Le problème réside dans l'objet o utilisé pour suivre les valeurs uniques. Lorsqu'un nombre est inséré dans o, il est converti en chaîne. Cependant, pour zéro, cette conversion donne la chaîne vide ''.

Ainsi, lorsque la deuxième boucle parcourt o, elle rencontre la chaîne vide comme clé et l'ajoute au tableau a. Cela entraîne l'inclusion incorrecte de valeurs en double.

Une solution correcte pour les valeurs uniques

Pour obtenir avec précision les valeurs uniques d'un tableau, envisagez la solution ES6 suivante en utilisant le méthode de filtrage :

function onlyUnique(value, index, array) {
  return array.indexOf(value) === index;
}

// usage example:
var numbers = [1, 2, 3, 4, 5, 1, 2];
var unique = numbers.filter(onlyUnique);

console.log(unique); // [1, 2, 3, 4, 5]
Copier après la connexion

Cette fonction compare l'index de chaque valeur du tableau avec l'index actuel. Si l'index correspond, cela signifie que la valeur est unique et est incluse dans le tableau filtré. Avec cette approche, toutes les valeurs en double sont effectivement supprimées.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal