Rumah > Soal Jawab > teks badan
var arr = [ 1,2,2,4,2 ];
untuk ( var i=0; i<arr.length; i++ ) {
for ( var j=i+1; j<arr.length; j++ ) {
if ( arr[i] == arr[j] ) {
arr.splice( j, 1 );
j--;
}
}
}
某草草2017-06-30 10:00:48
Jika pendua ditemui, sambungkannya daripada arr. Selepas
splice dialih keluar, item seterusnya dalam tatasusunan masih indeks semasa, jadi anda perlu j--
; 再循环中的 j++
dahulu untuk memastikan indeks betul.
Sebagai contoh, dalam gelung luar kedua, i = 1, j = 2, kemudian arr[1] ialah 2, arr[2] juga 2, arr[2] akan disambung keluar, dan tatasusunan menjadi [1, 2, 4,2], elemen 4 seterusnya masih merupakan item ke-2, dan akan terlepas jika tidak j--
dahulu.
代言2017-06-30 10:00:48
Apa yang anda katakan di atas adalah betul. Untuk menambah, anda boleh melakukannya secara terus dengan menggunakan filter
.
var arr = [ 1,2,2,4,2 ];
arr.filter(function (e, i) {
return arr.indexOf(e) === i;
})