Maison >interface Web >js tutoriel >Comment récupérer efficacement les valeurs uniques d'un tableau JavaScript, y compris les zéros ?
Récupérer des valeurs uniques à partir d'un tableau JavaScript
Dans cette question, nous visons à éliminer les valeurs en double d'un tableau JavaScript tout en garantissant l'intégrité de zéro élément. Examinons un extrait qui rencontre un problème lors de la gestion des zéros :
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; };
Cet extrait exploite la coercition inhérente à JavaScript, où les valeurs sont implicitement converties en valeurs véridiques ou fausses. Zéro est une valeur fausse en JavaScript, et comme les objets en JavaScript sont véridiques par défaut, il est ajouté à l'objet lors de la boucle initiale. Par conséquent, il est ensuite poussé dans le tableau résultant lors de la boucle suivante.
Cependant, dans le JavaScript moderne (ES5 et versions ultérieures), nous avons accès à des méthodes plus efficaces et plus fiables pour obtenir l'unicité des tableaux :
Méthode de filtrage native :
La méthode de filtrage nous permet de parcourir les éléments d'un tableau et de renvoyer un nouveau tableau contenant uniquement les éléments qui réussir une fonction de test spécifiée. On peut définir une fonction qui vérifie si un élément est unique au sein du tableau en comparant son index avec la première occurrence du même élément :
function onlyUnique(value, index, array) { return array.indexOf(value) === index; } // Example usage: const a = ['a', 1, 'a', 2, '1']; const unique = a.filter(onlyUnique); console.log(unique); // Logs: ['a', 1, 2, '1']
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!