Maison  >  Questions et réponses  >  le corps du texte

javascript - Que signifie j-- dans la deuxième boucle for?

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

}

三叔三叔2668 Il y a quelques jours1734

répondre à tous(2)je répondrai

  • 某草草

    某草草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.

    répondre
    0
  • 代言

    代言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;
    })

    répondre
    0
  • Annulerrépondre