Maison  >  Questions et réponses  >  le corps du texte

Déduplication de tableaux JavaScript : obtenez toutes les valeurs uniques

<pre class="brush:php;toolbar:false;"><p>J'ai un tableau de nombres et je dois m'assurer que les nombres qu'il contient sont uniques. J'ai trouvé l'extrait de code suivant sur Internet qui fonctionne correctement jusqu'à ce qu'il y ait un zéro dans le tableau. J'ai trouvé un autre script presque identique sur Stack Overflow, mais il n'échoue pas. </p> <p>Pour m'aider à apprendre, quelqu'un peut-il m'aider à identifier le problème avec le script du prototype ? </p> <pre><code>Array.prototype.getUnique = function() { var o = {}, a = [], je, e; pour (i = 0; e = this[i]; i++) {o[e] = 1}; pour (e en o) {a.push (e)} ; renvoyer un ; }</code></pre> <code> <h3>Plus de réponses aux questions en double : </h3> <ul> <li>Supprimer les valeurs en double du tableau JS</li> </ul> <h3>Questions similaires : </h3> <ul> <li>Obtenir toutes les valeurs non uniques du tableau (c'est-à-dire : doublons/occurrences multiples)</li> </ul><p><br /></p></code></pre>
P粉779565855P粉779565855427 Il y a quelques jours465

répondre à tous(2)je répondrai

  • P粉153503989

    P粉1535039892023-08-21 10:32:19

    Réponse mise à jour pour ES6/ES2015 : En utilisant Set et spread Operator (grâce à le-m), la solution en une seule ligne est la suivante :

    let uniqueItems = [...new Set(items)]

    Le résultat du retour est :

    [4, 5, 6, 3, 2, 23, 1]

    répondre
    0
  • P粉156983446

    P粉1569834462023-08-21 09:27:33

    Avec JavaScript 1.6 / ECMAScript 5, vous pouvez utiliser les méthodes filter natives des tableaux pour obtenir un tableau avec des valeurs uniques :

    function onlyUnique(value, index, array) {
      return array.indexOf(value) === index;
    }
    
    // 使用示例:
    var a = ['a', 1, 'a', 2, '1'];
    var unique = a.filter(onlyUnique);
    
    console.log(unique); // ['a', 1, 2, '1']

    répondre
    0
  • Annulerrépondre