Poate cineva să-mi punctul de unele cod pentru a determina dacă un număr în JavaScript este par sau impar?
Folosiți codul de mai jos:
function isOdd(num) { return num % 2;}
console.log("1 is " + isOdd(1));
console.log("2 is " + isOdd(2));
console.log("3 is " + isOdd(3));
console.log("4 is " + isOdd(4));
1 reprezintă un număr impar, în timp ce 0 reprezintă un număr par.
Utilizarea la nivel de bit "ȘI" operator.
function oddOrEven(x) {
return ( x & 1 ) ? "odd" : "even";
}
Dacă tu nu't vrei un șir de valoare de retur, ci mai degrabă un boolean, folosi aceasta:
var isOdd = function(x) { return x & 1; };
var isEven = function(x) { return !( x & 1 ); };
trebuie să Fac o serie foarte mare, care are o mulțime de numere, chiar
Nr. Utilizarea modulului (%). Acesta vă oferă restul de două numere se divid.
Ex. 2 % 2 = 0 because 2/2 = 1 with 0 remainder.
Ex2. 3 % 2 = 1 because 3/2 = 1 with 1 remainder.
Ex3. -7 % 2 = -1 because -7/2 = -3 with -1 remainder.
Acest lucru înseamnă că, dacă ați mod orice număr x de 2, puteți obține fie 0 sau 1 sau -1. 0 ar însemna o's chiar. Orice altceva ar însemna o's ciudat.
Ca multe limbi, Javascript are o modul operator%
, care găsește restul de diviziune. Dacă nu există nici restul împărțirii cu 2 un număr este chiar:
// this expression is true if "number" is even, false otherwise
(number % 2 == 0)
Aceasta este o expresie foarte frecvente pentru testare chiar și pentru numere întregi.
Mi folosesc extensii :
Number.prototype.isEven=function(){
return this % 2===0;
};
Number.prototype.isOdd=function(){
return !this.isEven();
}
apoi
var a=5;
a.isEven();
==False
a.isOdd();
==True
dacă nu sunteți sigur dacă este un Număr , testați-l prin următoarele ramificare :
if(a.isOdd){
a.isOdd();
}
ACTUALIZARE :
dacă nu s-ar folosi variabile :
(5).isOdd()
Se pare că Procedurale paradigmă este mai bună decât paradigma OOP . Apropo , am efectuat [de profilare în acest VIOARA][1] . Cu toate acestea , OOP mod este încă cea mai frumoasă .
Puteți utiliza o declarație și o condițională pentru a determina dacă un număr sau o serie de numere este ciudat:
for (var i=1; i<=5; i++)
if (i%2 !== 0) {
console.log(i)
}
Acest lucru se va imprima fiecare număr impar între 1 și 5.
<script>
function even_odd(){
var num = document.getElementById('number').value;
if ( num % 2){
document.getElementById('result').innerHTML = "Entered Number is Odd";
}
else{
document.getElementById('result').innerHTML = "Entered Number is Even";
}
}
</script>
</head>
<body>
<center>
<div id="error"></div>
<center>
<h2> Find Given Number is Even or Odd </h2>
<p>Enter a value</p>
<input type="text" id="number" />
<button onclick="even_odd();">Check</button><br />
<div id="result"><b></b></div>
</center>
</center>
</body>
Numai un număr întreg poate fi ciudat.
isOdd("someString")
ar trebui să fie false.
Un șir de caractere nu este un număr întreg.isOdd(1.223) " și " isOdd(-1.223)
ar trebui să fie false.
Un float nu este un număr întreg.isOdd(0)
ar trebui să fie false.
Zero este un număr întreg (https://en.wikipedia.org/wiki/Parity_of_zero).isOdd(-1)
ar trebui să fie adevărat.
L's un ciudat întreg.`` funcția isOdd(n) {
// Trebuie să fie un număr if (isNaN(n)) { return false; }
// Număr nu trebuie să fie un float if ((n % 1) !== 0) { return false; }
// Număr întreg nu trebuie să fie egală cu zero if (n === 0) { return false; }
// Număr întreg trebuie să fie impar if ((n % 2) !== 0) { return true; }
return false; } ``
JS Vioara (dacă este necesar):
Javascript 1-linie soluție. Pentru cei care don't grijă despre lizibilitate.
const isOdd = n => !(isNaN(n) && ((n % 1) !== 0) && (n === 0)) && ((n % 2) !== 0) ? true : false;
Tocmai l-a executat pe acesta în Adobe Dreamweaver..functioneaza perfect. am folosit if (isNaN(mynmb))
pentru a verifica dacă Valoarea dată este un număr sau nu, și eu, de asemenea, utilizate Math.abs(mynmb%2) pentru a converti un număr negativ la pozitiv și se calculează
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body bgcolor = "#FFFFCC">
<h3 align ="center"> ODD OR EVEN </h3><table cellspacing = "2" cellpadding = "5" bgcolor="palegreen">
<form name = formtwo>
<td align = "center">
<center><BR />Enter a number:
<input type=text id="enter" name=enter maxlength="10" />
<input type=button name = b3 value = "Click Here" onClick = compute() />
<b>is<b>
<input type=text id="outtxt" name=output size="5" value="" disabled /> </b></b></center><b><b>
<BR /><BR />
</b></b></td></form>
</table>
<script type='text/javascript'>
function compute()
{
var enter = document.getElementById("enter");
var outtxt = document.getElementById("outtxt");
var mynmb = enter.value;
if (isNaN(mynmb))
{
outtxt.value = "error !!!";
alert( 'please enter a valid number');
enter.focus();
return;
}
else
{
if ( mynmb%2 == 0 ) { outtxt.value = "Even"; }
if ( Math.abs(mynmb%2) == 1 ) { outtxt.value = "Odd"; }
}
}
</script>
</body>
</html>
Folosind %
vă va ajuta să face acest lucru...
Puteți crea două funcții pentru a face pentru tine... prefer separte funcții care nu sunt atașate la Număr în Javascript de genul asta, care, de asemenea, verificarea dacă trece numărul sau nu:
ciudat funcția:
var isOdd = function(num) {
return 'number'!==typeof num ? 'NaN' : !!(num % 2);
};
chiar și funcția:
var isEven = function(num) {
return isOdd(num)==='NaN' ? isOdd(num) : !isOdd(num);
};
și sună așa:
isOdd(5); // true
isOdd(6); // false
isOdd(12); // false
isOdd(18); // false
isEven(18); // true
isEven('18'); // 'NaN'
isEven('17'); // 'NaN'
isOdd(null); // 'NaN'
isEven('100'); // true
if (X % 2 === 0){
} else {
}
Înlocuiți X cu numarul tau (poate veni de la o variabilă). Dacă declarația se execută atunci când numărul este chiar, la Altceva atunci când este ciudat.
Dacă doriți doar să știu dacă un anumit număr este impar:
if (X % 2 !== 0){
}
Din nou, înlocuiți X cu un număr sau variabilă.
Aceasta este ceea ce am făcut
//Array of numbers
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,32,23,643,67,5876,6345,34,3453];
//Array of even numbers
var evenNumbers = [];
//Array of odd numbers
var oddNumbers = [];
function classifyNumbers(arr){
//go through the numbers one by one
for(var i=0; i<=arr.length-1; i++){
if (arr[i] % 2 == 0 ){
//Push the number to the evenNumbers array
evenNumbers.push(arr[i]);
} else {
//Push the number to the oddNumbers array
oddNumbers.push(arr[i]);
}
}
}
classifyNumbers(numbers);
console.log('Even numbers: ' + evenNumbers);
console.log('Odd numbers: ' + oddNumbers);
Pentru unii motiv, a trebuit să asigurați-vă că lungimea de matrice este mai mic de unu. Când am don't face asta, am "nedefinit" în ultimul element al oddNumbers matrice.