2016-03-23 19 views
0

Das ist also die Frage: Code eine Funktion namens DaySuffix, die einen einzelnen Parameter dauert. Der Parameter wird überprüft, um sicherzustellen, dass es sich um eine Zahl handelt (siehe Number.isNaN() und dann in die nächste Ganzzahl konvertiert. Es wird geprüft, ob die Ganzzahl im Bereich von 1 bis 31 liegt. Wenn eine der Überprüfungen fehlschlägt, wird der Wert null zurückgegeben Schließlich sollte die Ganzzahl mit dem entsprechenden Tag des Monats Suffix zurückgegeben werden (zB "1st", "2nd", "3rd", "27th" usw.). Verwenden Sie nur eine weitere Return-Anweisung (für insgesamt dreiAnfänger: Überprüfen von Parametern und ganzen Zahlen

)
var daySuffix = function() { 
    var num1 = 100; 

    if (typeof num1 == 'number') { 
     document.write(num1 + " is a number <br/>"); 
    } else { 
     document.write(num1 + " is not a number <br/>"); 
    } 

    function between(daySuffix, min, max) { 
     return daySuffix >= min && daySuffix <= max; 
    } 
    if (between(daySuffix, 1, 31)) { 

    }; 

    console.log() 
}; 

daySuffix() 

Natürlich bin ich ein wenig verloren Kann mir jemand einen Tipp geben, wo von hier aus zu

+1

Wo bist du genau verloren? Betrachten wir das nochmal: 'Funktion zwischen (TagSuffix, Min, Max)'. Ich würde einen anderen Variablennamen für den ersten Parameter geben. Wenn Sie dann den Aufruf 'between (daySuffix, 1, 31)' machen, sollte der erste Parameter 'num1' sein. –

+0

Ich denke, Sie müssen num1 als Parameter übergeben und das Ergebnis zurückgeben. Oder Sie stellen die Frage klarer – murli2308

Antwort

0
//function with a parameter 
var daySuffix = function (num1) { 
    if (isNaN(num1)) { 
     //not a number, return null 
     return null; 
    } 

    if (num1 < 1 || num1 > 31) { 
     //outside range 
     return null; 
    } 

    //logic for finding suffix 
} 

console.log(daySuffix(0));  //null 
console.log(daySuffix(1));  //"1st" 
console.log(daySuffix("hi")); //null 
0

hier ist eine Arbeitsprobe:.?

var daySuffix = function (num) { 
    var result = null, 
     days = ["st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "st"]; 

    if (!isNaN(num)) { 
     num = Math.round(num); 
     if (num >= 1 && num <= 31) { 
      result = num + days[num - 1]; 
     } 
    } 
    return result; 
} 
0

Hier ist eine andere Lösung, die für Sie arbeiten kann:

var daySuffix = function(num) { 
    var stringEquivalent, last2Digits, lastDigit; 
    var suffixes = ['th', 'st', 'nd', 'rd', 'th']; 
    var roundedNum = Math.round(num); 

    // Check to see if `num` is a number and between the values of 1 and 31 
    if (typeof num === 'number' && roundedNum >= 1 && roundedNum <= 31) { 

     // Convert to string equivalent 
     stringEquivalent = String(roundedNum); 

     // Get the last 2 characters of string and convert them to number 
     last2Digits = Number(stringEquivalent.slice(-2)); 

     lastDigit = Number(stringEquivalent.slice(-1)); 

     switch (last2Digits) { 

      // 11, 12, and 13 have unique 'th' suffixes 
      case 11: 
      case 12: 
      case 13: 
       return roundedNum + 'th'; 
      default: 
       return roundedNum + suffixes[Math.min(lastDigit, 4)]; 
     } 
    } 

    // Null is returned if the 'if' statement fails 
    return null; 
}; 
// Test results 
for (var i = 1; i <= 31; i++) { console.log(daySuffix(i)); }