Rumah  >  Soal Jawab  >  teks badan

Penyahduplikasi tatasusunan JavaScript: dapatkan semua nilai unik

<pre class="brush:php;toolbar:false;"><p>Saya mempunyai susunan nombor dan saya perlu memastikan nombor di dalamnya adalah unik. Saya menemui coretan kod berikut di internet yang berfungsi dengan baik sehingga terdapat sifar dalam tatasusunan. Saya menemui satu lagi skrip yang hampir sama pada Stack Overflow, tetapi ia tidak gagal. </p> <p>Untuk membantu saya belajar, bolehkah sesiapa membantu saya mengenal pasti apa yang salah dengan skrip prototaip? </p> <pra><kod>Array.prototype.getUnique = function() { var o = {}, a = [], i, e; untuk (i = 0; e = ini[i]; i++) {o[e] = 1}; untuk (e dalam o) {a.tolak (e)}; kembalikan a; }</code></pre> <kod> <h3>Lagi jawapan daripada soalan pendua: </h3> <ul> <li>Alih keluar nilai pendua daripada tatasusunan JS</li> </ul> <h3>Soalan serupa: </h3> <ul> <li>Dapatkan semua nilai bukan unik dalam tatasusunan (iaitu: pendua/berbilang kejadian)</li> </ul><p><br /></p></code></pra>
P粉779565855P粉779565855448 hari yang lalu484

membalas semua(2)saya akan balas

  • P粉153503989

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

    Jawapan dikemas kini untuk ES6/ES2015: Menggunakan Set dan spread operator (terima kasih kepada le-m), penyelesaian satu baris adalah seperti berikut:

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

    Hasil pulangan ialah:

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

    balas
    0
  • P粉156983446

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

    Dengan JavaScript 1.6 / ECMAScript 5, anda boleh menggunakan kaedah tatasusunan asli filter untuk mendapatkan tatasusunan dengan nilai unik:

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

    balas
    0
  • Batalbalas