2016-03-23 3 views
0

Так что это вопрос: Код функции daySuffix, которая принимает один параметр. Параметр проверяется, чтобы убедиться, что это номер (см. Number.isNaN(), а затем преобразован в ближайшее целое число. Проверяется, что целое число находится в диапазоне от 1 до 31 включительно. Если одна из проверок не возвращает значение null Наконец, целое число должно быть возвращено с соответствующим днем ​​суффикса месяца (например, «1-й», «2-й», «3-й», «27-й» и т. Д.). Используйте только один дополнительный оператор возврата (всего три)Новичок: проверка параметров и целых чисел

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

Где вы точно потеряли? Рассмотрим relooking при этом: 'функция между (daySuffix, min, max)'. Я бы дал другое имя переменной для первого параметра. Затем, когда вы делаете вызов 'между (daySuffix, 1, 31)', первый параметр должен быть '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)); } 
Смежные вопросы