2016-03-23 13 views
0

だから、これは質問です: コード単一パラメータを取るdaySuffix呼ばれる関数。パラメータがチェックされて数値であることを確認します(Number.isNaN()を参照)。次に、整数が1から31の範囲にあることがチェックされます。 (例えば、 "1st"、 "2nd"、 "3rd"、 "27th"など)を返す必要があります。 。?ここ)初心者:チェックパラメータと整数

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() 

明らかに私は少し迷ってしまいました、誰もがここからどこへ行くにと私にヒントを与えることができ

+1

あなたは正確に失われていますか?これを見直すことを考えてみましょう: 'function between(daySuffix、min、max)'。私は、最初のパラメータのために別の変数名を与えるでしょう。そして、あなたが '(daySuffix、1、31)'の間で 'num1'を呼び出すと、最初のparamは' num1'になります。 –

+0

num1をパラメータとして渡して結果を返す必要があると思います。 – murli2308

答えて

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

は、作業サンプルです:

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

ここではあなたのために働くことがあり、別のソリューションです:

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