Maison > interface Web > js tutoriel > Pourquoi la suppression des doublons d'un tableau JavaScript échoue-t-elle avec zéro ?

Pourquoi la suppression des doublons d'un tableau JavaScript échoue-t-elle avec zéro ?

Susan Sarandon
Libérer: 2024-12-22 13:45:33
original
207 Les gens l'ont consulté

Why Does Removing Duplicates from a JavaScript Array Fail with Zero?

Suppression des doublons d'un tableau JavaScript : la mystérieuse erreur zéro

Lorsque vous travaillez avec des tableaux en JavaScript, il est souvent essentiel de s'assurer que les valeurs sont uniques. Cependant, rencontrer une erreur lorsqu’il s’agit de valeurs nulles peut être déroutant. Explorons le problème et sa solution.

L'extrait de code fourni utilise la fonction Array.prototype.getUnique pour éliminer les doublons :

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

Bien que cette fonction fonctionne parfaitement dans la plupart des cas, elle trébuche lorsque le tableau contient un zéro. Pour résoudre ce problème, nous pouvons exploiter la méthode de filtrage native d'un tableau introduite dans JavaScript 1.6/ECMAScript 5 :

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

// usage example:
var a = ['a', 1, 'a', 2, '1'];
var unique = a.filter(onlyUnique);

console.log(unique); // ['a', 1, 2, '1']
Copier après la connexion

Dans cette solution, la fonction onlyUnique garantit que chaque valeur n'apparaît qu'une seule fois dans le tableau résultant. . Lorsqu'il est utilisé avec la méthode de filtrage, il supprime efficacement les doublons, y compris zéro.

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