Maison > Questions et réponses > le corps du texte
var arr = [ 1,2,2,4,2 ];
pour ( 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
Si des doublons sont rencontrés, séparez-les de l'arr. Une fois
splice supprimé, l'élément suivant du tableau est toujours l'index actuel, vous devez donc d'abord j--
; 再循环中的 j++
garder l'index correct.
Par exemple, dans la deuxième boucle externe, i = 1, j = 2, alors arr[1] vaut 2, arr[2] vaut également 2, arr[2] sera séparé et le tableau devient [1, 2, 4,2], l'élément suivant 4 est toujours le 2ème élément, et sera manqué sinon j--
premier.
代言2017-06-30 10:00:48
Ce que vous avez dit ci-dessus est correct. Pour ajouter, vous pouvez le faire directement en utilisant filter
.
var arr = [ 1,2,2,4,2 ];
arr.filter(function (e, i) {
return arr.indexOf(e) === i;
})