Heim  >  Fragen und Antworten  >  Hauptteil

JavaScript-Array-Deduplizierung: Alle eindeutigen Werte abrufen

<pre class="brush:php;toolbar:false;"><p>Ich habe ein Array von Zahlen und muss sicherstellen, dass die darin enthaltenen Zahlen eindeutig sind. Ich habe im Internet den folgenden Codeausschnitt gefunden, der einwandfrei funktioniert, bis das Array eine Null enthält. Ich habe auf Stack Overflow ein weiteres, fast identisches Skript gefunden, das jedoch nicht fehlschlägt. </p> <p>Kann mir jemand beim Lernen helfen, herauszufinden, was mit dem Prototyp-Skript nicht stimmt? </p> <pre><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)}; gib a zurück; }</code></pre> <Code> <h3>Weitere Antworten auf doppelte Fragen: </h3> <ul> <li>Doppelte Werte aus dem JS-Array entfernen</li> </ul> <h3>Ähnliche Fragen: </h3> <ul> <li>Alle nicht eindeutigen Werte im Array abrufen (d. h. Duplikate/mehrfache Vorkommen)</li> </ul><p><br /></p></code></pre>
P粉779565855P粉779565855448 Tage vor486

Antworte allen(2)Ich werde antworten

  • P粉153503989

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

    ES6/ES2015的更新答案:使用Set扩展运算符(感谢le-m),单行解决方案如下:

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

    返回结果为:

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

    Antwort
    0
  • P粉156983446

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

    使用 JavaScript 1.6 / ECMAScript 5,您可以使用数组的原生 filter 方法来获取一个具有唯一值的数组:

    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']

    Antwort
    0
  • StornierenAntwort