Penyahduplikasi tatasusunan JavaScript: dapatkan semua nilai unik
P粉779565855
2023-08-20 11:36:41
<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>
Jawapan dikemas kini untuk ES6/ES2015: Menggunakan Set dan spread operator (terima kasih kepada le-m), penyelesaian satu baris adalah seperti berikut:
Hasil pulangan ialah:
Dengan JavaScript 1.6 / ECMAScript 5, anda boleh menggunakan kaedah tatasusunan asli
filter
untuk mendapatkan tatasusunan dengan nilai unik: