javascript - Que signifie j-- dans la deuxième boucle for?
三叔
三叔 2017-06-30 09:58:48
0
2
1766

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--;
    }
}

}

三叔
三叔

répondre à tous(2)
某草草

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.

代言

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;
})
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal