2017-11-30 22 views
-3

die Funktion bekommt 4 Zahlen und setzen Sie die Zahlen in 4, die Stunden Minuten darstellen, aber aus irgendeinem Grund, wenn ich mehr als eine "0" setzen es nur in die erste var hour_primary, der Rest bekommt nicht die "0".JavaScript-Funktion, brauche etwas Hilfe :)

function myFunc(a,b,c,d){ 

    var i; 
    var hour_primary, 
     hour_secoundery, 
     minute_primary, 
     minute_secoundery; 
    var arr = [a,b,c,d]; 
    arr.sort(function(a,b){return b-a;}); // 1 2 3 6 
    console.log(arr); 
    for(i=0;i<arr.length;i++){ 
    var dig = arr[i] 

    //checking if number fits to any hour/minute 
    if(dig>=0 && dig<=2){ 
     if(!hour_primary){ 
     hour_primary = dig; 
     }else if(!hour_secoundery){ 
     hour_secoundery = dig; 
     }else if(!minute_primary){ 
     minute_primary = dig; 
     }else if(!minute_secoundery){ 
     minute_secoundery = dig; 
     } 
    } 


    } 
    console.log(hour_primary); 
    console.log(hour_secoundery); 
    console.log(minute_primary); 
    console.log(minute_secoundery); 
    if(hour_primary != null && hour_secoundery != null && minute_primary != null && minute_secoundery != null) 
    return hour_primary+""+hour_secoundery+":"+minute_primary+""+minute_secoundery; 
    else 
    return "error"; 
} 
console.log(myFunc(0,0,0,0)); 
+1

Sie auch kurz erklären sollten, was Sie versuchen, mit dieser Funktion zu erreichen . – blueren

+1

Was soll es tun? Was macht es eigentlich? Ist dir bewusst, dass "! 0" "wahr" ist? – Ryan

+0

Ich gab noch ein paar Infos. – Talg123

Antwort

0

ok Ich verstehe nicht, warum es im Grunde nicht funktioniert es in allen setzen sollte Vars 0.

Da !hour_primary gelten sowohl für 0 und undefined, so dass er nie von dem erreichten else s.

!0 == !undefined == true 

daher andere als hour_primary alles andere bleibt undefined

Sie müssen direkt erfragen undefined

if(dig>=0 && dig<=2){ 
    if(hour_primary == undefined){ 
    hour_primary = dig; 
    }else if(hour_secoundery == undefined){ 
    hour_secoundery = dig; 
    }else if(minute_primary == undefined){ 
    minute_primary = dig; 
    }else if(minute_secoundery == undefined){ 
    minute_secoundery = dig; 
    } 
}