Знайдіть, чи змінна ділиться на 2


128

Як визначити, чи змінна ділиться на 2? Крім того, мені потрібно виконати функцію, якщо вона є, і виконувати іншу функцію, якщо її немає.


6
@SilentGhost: чи справді люди сьогодні отримують домашнє завдання jQuery?
Енді Е

4
не знаю про це Енді, але люди напевно знають, як зіпсувати свої теги.
SilentGhost

2
@OP: jQuery - це не відповідь на все, що ви, можливо, захочете зробити в JavaScript;)
Майк Атлас

8
@Mike Неправильно! Для цього слід використовувати базовий арифметичний плагін jQuery! То такий шлях ...: P (Іронія)
Пабло Кабрера

Відповіді:


312

Використовувати модуль:

// Will evaluate to true if the variable is divisible by 2
variable % 2 === 0  

30
любити це! просто, легко, і ви не змусили мене почувати себе ідіотів, коли задаєте питання ..., що (для всіх інших, хто ще не знає) - велика справа для нових розробників jQuery / Javascript.
sadmicrowave

6
@sadmicrowave: ми всі починаємо як початківці в якийсь момент. Справжня проблема - відсутність інформаційних навчальних посібників там. Підручники для абсолютних початківців повинні уточнити різницю між JavaScript та jQuery, і вони просто занурюються прямо в матеріали jQuery.
Енді Е

3
Перший код, який я коли-небудь писав, був у JavaScript, і це було "вітання" спливаючого вікна. Рік був 1997, і це було для моєї домашньої сторінки Geocities. Ми, безумовно, все починаємо десь (хоча й формальне навчання теж допомагає).
Майк Атлас

чи не так: змінна% 2 == 0 Навчіть мене, якщо я помиляюся.
Шон Танк Гарві

28

Серйозно, немає жодного плагіна jQuery для непарних / парних перевірок?

Ну, не більше - випустити "Oven" плагін jQuery під ліцензією MIT, щоб перевірити, чи вказане число непарне / парне.

Вихідний код також доступний на веб-сайті http://jsfiddle.net/7HQNG/

Набори тестів доступні на веб-сайті http://jsfiddle.net/zeuRV/

(function() {
    /*
     * isEven(n)
     * @args number n
     * @return boolean returns whether the given number is even
     */
    jQuery.isEven = function(number) {
        return number % 2 == 0;
    };

    /* isOdd(n)
     * @args number n
     * @return boolean returns whether the given number is odd
     */
    jQuery.isOdd = function(number) {
        return !jQuery.isEven(number);
    };
})();​

7
Ого. Смішно, але ти розумієш, що хтось насправді цим скористається?
Тім Даун

7
@Tim Down: Цікаво, чи хтось використовує цей базовий арифметичний плагін jQuery ? Далі в списку генератор випадкових чисел jQuery ;-)
Енді Е

9
Є так багато, що jQuery може зробити, як створити змінні, функції тощо, що все ще робиться з необробленим JavaScript . Просто неймовірно ;-)
Анураг

4
@Andy - ROFL за цим посиланням та зображенням SO - doxdesk.com/img/updates/20091116-so-large.gif Я думаю, що відповідь "використовувати jQuery" зараз досягне високого рівня в JavaScript:
Анураг

У вас є слово документ поясніть, використовуйте мене? @Anurag
Todd


11

Ви можете використовувати оператор модуля таким чином, jQuery не потребує. Просто замініть alertsсвій код.

var x = 2;
if (x % 2 == 0)
{
  alert('even');
}
else
{
  alert('odd')
}

11

Ви можете зробити це краще (до 50% швидше, ніж оператор модуля):

непарне: x & 1 парне:! (x & 1)

Довідка: Високопродуктивний JavaScript, 8. -> Побітові оператори


Це чудова, насправді найкраща відповідь. Однак для цього потрібні знання операторів побітових операцій ..
Шон Танк Гарві


4
var x = 2;
x % 2 ? oddFunction() : evenFunction();

Я думаю, що цей код неправильний / хибний. Ви оголошуєте значення для змінної x (конкретно роблячи x завжди еквівалентним номеру 2) .. Перша помилка. Тоді ваш наступний рядок просто говорить, якщо змінну x можна розділити на 2, тоді зробіть oddFunction, інакше / якщо-не зробіть evenFunction ... Проблема такого підходу полягає в тому, що він завжди буде виробляти evenFunction - ніколи oddFunction - це ще одна проблема / помилка. Будь ласка, навчайте мене, якщо я помиляюся.
Шон Танк Гарві


2

Сподіваюся, це допомагає.

let number = 7;

if(number%2 == 0){      

  //do something;
  console.log('number is Even');  

}else{

  //do otherwise;
  console.log('number is Odd');

}

Ось повна функція, яка увійде в консоль, паритет вашого введення.

const checkNumber = (x) => {
  if(number%2 == 0){      

    //do something;
    console.log('number is Even');  

  }else{

    //do otherwise;
    console.log('number is Odd');

  }
}

1

Будь ласка, напишіть у консолі такий код:

var isEven = function(deep) {

  if (deep % 2 === 0) {
        return true;  
    }
    else {
        return false;    
    }
};
isEven(44);

Зверніть увагу: воно повернеться істинним, якщо введене число навіть інакше помилкове.


1
дякую за відповідь, але це по суті те саме, що прийнята відповідь, ви просто закрутили її у функцію. У будь-якому випадку, дякую за внесок
sadmicrowave

1

Використовуйте модуль, але .. Наведена вище відповідь трохи неточна. Я вважаю, оскільки x - це номер типу в JavaScript, що оператор повинен бути подвійним призначенням замість потрійного призначення, наприклад:

x % 2 == 0

Не забудьте також оголосити свої змінні, тому очевидно, що цей рядок не можна було записати окремо. :-) Зазвичай використовується як ifвислів. Сподіваюся, це допомагає.


-2

масив = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

array.each {| x | ставить x, якщо x% 2 == 0}

рубін: D

2 4 6 8 10


1
Ви блукаєте з 4chan?
Тодд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.