Penyahduplikasi tatasusunan JavaScript: dapatkan semua nilai unik
P粉779565855
P粉779565855 2023-08-20 11:36:41
0
2
516
<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粉779565855
P粉779565855

membalas semua(2)
P粉153503989

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]
P粉156983446

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']
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan