Определить isEven в терминах isOdd в JavaScript
Я работаю над упражнением Codecademy:
Помните функции isOdd и isEven из упражнения 3.4?
Мы бы хотели, чтобы вы снова их кодировали! Но на этот раз цель состоит в том, чтобы определить одну функцию в терминах другой, используя! условное обозначение.
Определите isOdd, а затем определите isEven в терминах isOdd.
Я пробовал несколько разных способов, которые я хотел бы работать, как console.log(!isOdd(1));
а также(n !% 2 ===)
Никто из них не прав.
Вот код, который у меня есть:
var isOdd = function (n)
{
if (n % 2 ===0)
{
return false;
} else {
return true;
}
};
var isEven =function (n)
{
if (n % 2 === 0)
{
return true;
} else {
return false;
}
};
console.log(isOdd(1));
console.log(isOdd(2));
console.log(isOdd(999));
4 ответа
Решение
var isOdd = function(n){
if (n % 2 !== 0) {
return true;
} else {
return false;}
};
var isEven = function(n){
return !isOdd(n) ;
};
console.log(isOdd(11));
var isOdd = function(){
if(isEven){
return isEven();
} else {
return false;
}
};
var isEven = function (){
return true;
};
console.log(isOdd());
Эти ответы неверны по определению.
Число - это целое число и число с плавающей точкой.
Все представленные ответы хороши для целых чисел.
Вот правильные ответы.
function isEven(n) { // covers all
return (n).toString(2).endsWith(‘0’) // binary format
}
function isEven_integer(n) {
return (n & 1) === 0;
}
function isEven_float(n) {
// floats only, but works on integers.// faster for floats
return ((n).toString()[(n).toString().length-1] % 2) === 0; // base 10
}
var isOdd = function(n)
{
if(n%2 !== 0)
{ return ("odd");}
};
var isEven = function (n)
{
return !isOdd(n);
};
console.log(isEven(8));