javascript – Optimizar y duda con iteración del bucle for

Ahora mismo tengo un array de 6 objetos, los cuales son estos:

0: Object { hp: 9999, atk: 255, def: 255, … }
1: Object { hp: 9999, atk: 255, def: 255, … }
2: Object { hp: 9999, atk: 255, def: 255, … }
3: Object { hp: 800000, atk: 180, def: 200, … }
4: Object { hp: 180000, atk: 120, def: 100, … }
5: Object { hp: 180000, atk: 120, def: 100, … }
length: 6

Para iterarlos utilizo un bucle for:

function selectTurn(arg){

    for(let i=0;i<arg.length;i++){

        var turn = setInterval(function(i){
            arg(i).vel++;

            document.querySelectorAll('.turn-rest')(i).style.width=arg(i).vel+'px';
            if(arg(0).vel == 100){
                arg(0).vel = 0;
                document.querySelectorAll('.turn-rest')(0).style.width='0px';
            }
            if(arg(1).vel == 70){
                arg(1).vel = 0;
                document.querySelectorAll('.turn-rest')(1).style.width='0px';
            }
            if(arg(2).vel == 70){
                arg(2).vel = 0;
                document.querySelectorAll('.turn-rest')(2).style.width='0px';
            }
            if(arg(3).vel == 65){
                arg(3).vel = 0;
                document.querySelectorAll('.turn-rest')(3).style.width='0px';
            }
            if(arg(4).vel == 40){
                arg(4).vel = 0;
                document.querySelectorAll('.turn-rest')(4).style.width='0px';
            }
            if(arg(5).vel == 50){
                arg(5).vel = 0;
                document.querySelectorAll('.turn-rest')(5).style.width='0px';
            }
        },100, i);
    }
}

Lo primero y lo que más atención me llama es:

¿Por qué narices se desordena el array a su gusto?
Si antes llevaba el orden de, los 3 primeros objetos tienen 9999 y los tres siguientes tienen 800000 y 180000, cómo es posible que cambie el orden a este:

0: Object { hp: 800000, atk: 180, def: 200, … }
1: Object { hp: 180000, atk: 120, def: 100, … }
2: Object { hp: 180000, atk: 120, def: 100, … }
3: Object { hp: 9999, atk: 255, def: 255, … }
4: Object { hp: 9999, atk: 255, def: 255, … }
5: Object { hp: 9999, atk: 255, def: 255, … }
length: 6

Entendería que lo ordenara al revés, y eso no estaría mal del todo. ¿Pero tan aleatoriamente? (Para aclarar, los de hp 9999 están entremezclados entre si también).

Lo segundo es:

Entiendo cómo trabaja el bucle for, pero no se me ocurre ninguna idea para optimizar todas esos if.

¿Alguna sugerencia?