source

JavaScript에서 숫자가 홀수인지 확인하는 방법

goodcode 2022. 9. 20. 23:59
반응형

JavaScript에서 숫자가 홀수인지 확인하는 방법

JavaScript의 숫자가 짝수인지 홀수인지를 판단하기 위해 코드를 가르쳐 주실 수 있습니까?

다음 코드를 사용합니다.

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은 홀수를 나타내고 0은 짝수를 나타냅니다.

비트 연산자를 사용합니다.

function oddOrEven(x) {
  return ( x & 1 ) ? "odd" : "even";
}

function checkNumber(argNumber) {
  document.getElementById("result").innerHTML = "Number " + argNumber + " is " + oddOrEven(argNumber);
}
 
checkNumber(17);
<div id="result" style="font-size:150%;text-shadow: 1px 1px 2px #CE5937;" ></div>

문자열 반환 값이 아닌 부울 값을 원하는 경우 다음을 사용합니다.

var isOdd = function(x) { return x & 1; };
var isEven  = function(x) { return !( x & 1 ); };

다음과 같은 작업을 수행할 수 있습니다.

function isEven(value){
    if (value%2 == 0)
        return true;
    else
        return false;
}
function isEven(x) { return (x%2)==0; }
function isOdd(x) { return !isEven(x); }

짝수가 많은 배열을 정말 크게 만들어야 합니까?

아니요. 계수(%)를 사용합니다.그러면 나누는 두 숫자의 나머지가 표시됩니다.

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.

즉, 임의의 숫자 x x 2를 수정하면 0 또는 1 또는 -1이 됩니다. 0은 짝수임을 의미합니다.다른 건 이상하다는 뜻이지

이 문제는 코드 조각으로 해결할 수 있습니다.

function isEven(value) {
    return !(value % 2)
}

이것이 도움이 되기를 바랍니다:)

ES6의 경우:

const isOdd = num => num % 2 == 1;

비트 골프 사용 시 코드 골프:

var isEven=n=>(n&1)?"odd":"even";

많은 언어와 마찬가지로 Javascript에는 나눗셈의 나머지를 찾는 계수 연산자가 있습니다.2로 나눈 후에 나머지가 없는 경우, 짝수는 다음과 같습니다.

// this expression is true if "number" is even, false otherwise
(number % 2 == 0)

마찬가지로 나눗셈 2 뒤에 1의 나머지가 있는 경우, 숫자는 홀수입니다.

// this expression is true if "number" is odd, false otherwise
(number % 2 == 1)

이것은 짝수 정수를 테스트하기 위한 매우 일반적인 관용어입니다.

내선번호 사용:

Number.prototype.isEven=function(){
     return this % 2===0;
};

Number.prototype.isOdd=function(){
     return !this.isEven();
}

그리고나서

var a=5; 
 a.isEven();

==거짓말

 a.isOdd();

==참

번호가 불분명한 경우 다음 분기로 테스트합니다.

if(a.isOdd){
    a.isOdd();
}

갱신:

변수를 사용하지 않는 경우:

(5).isOdd()

퍼포먼스:

OOP 패러다임보다 절차적 패러다임이 더 나은 것으로 나타났습니다. 그런데, 저는 이 FILED에서 프로파일링을 수행했습니다. 하지만, OOP 방식이 여전히 가장 예쁩니다.

여기에 이미지 설명 입력

간단한 기능으로 쉽게 전달할 수 있습니다.로 연산자를 사용합니다.%:

var is_even = function(x) {
    return !(x % 2); 
}

is_even(3)
false
is_even(6)
true
if (X % 2 === 0){
} else {
}

X를 숫자로 대체합니다(변수에서 가져올 수 있음).짝수일 때 If 문이 실행되고 홀수일 때 기타 문이 실행됩니다.

특정 번호가 홀수인지 알고 싶은 경우:

if (X % 2 !== 0){
}

다시 X를 숫자 또는 변수로 바꿉니다.

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

for 문과 조건을 사용하여 숫자 또는 일련의 숫자가 홀수인지 판별할 수 있습니다.

for (var i=1; i<=5; i++) 
if (i%2 !== 0) {
    console.log(i)
}

이렇게 하면 1에서 5 사이의 모든 홀수가 인쇄됩니다.

어도비 드림위버에서 방금 이걸 실행했는데..완벽하게 작동합니다.i는 if(isNaN(mynmb))사용했습니다.

지정된 값이 숫자인지 확인하고 Math.abs(mynmb%2)사용하여 음수를 양수로 변환하고 계산했습니다.

    <!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>

일부 변수가 홀수인지 검정해야 하는 경우 먼저 정수인지 검정해야 합니다.또한 음수에 대한 나머지를 계산할 때 결과는 음수입니다.-3 % 2 === -1

function isOdd(value) {
  return typeof value === "number" && // value should be a number
    isFinite(value) &&                // value should be finite
    Math.floor(value) === value &&    // value should be integer
    value % 2 !== 0;                  // value should not be even
}

Number.isInteger를 사용할 수 있는 경우 이 코드를 다음과 같이 단순화할 수도 있습니다.

function isOdd(value) {
  return Number.isInteger(value)      // value should be integer
    value % 2 !== 0;                  // value should not be even
}

에서는 시험해 보겠습니다.value % 2 !== 0value % 2 === 1 of -3 % 2 === -1 않으면-1이 테스트에 합격하면 이 행을 변경해야 할 수 있습니다.

테스트 케이스는 다음과 같습니다.

isOdd();         // false
isOdd("string"); // false
isOdd(Infinity); // false
isOdd(NaN);      // false
isOdd(0);        // false
isOdd(1.1);      // false
isOdd("1");      // false
isOdd(1);        // true
isOdd(-1);       // true

「」를 사용합니다.%도움이 될 거야

몇 가지 기능을 만들어 사용할 수 있습니다.다음과 같이 Javascript의 Number에 부가되지 않은 separte 기능을 선호합니다.

홀수 함수:

var isOdd = function(num) {
  return 'number'!==typeof num ? 'NaN' : !!(num % 2);
};

짝수 함수:

var isEven = function(num) {
  return isOdd(num)==='NaN' ? isOdd(num) : !isOdd(num);
};

이렇게 불러주세요.

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

최신 javascript의 보다 기능적인 접근법:

const NUMBERS = "nul one two three four five six seven ocho nueve".split(" ")

const negate = f=> (...args)=> !f(...args)
const isOdd  = n=> NUMBERS[n % 10].indexOf("e")!=-1
const isEven = negate(isOdd)

ES6에 라이너 한 대, 깨끗하다는 이유만으로.

const isEven = (num) => num % 2 == 0;

많은 사람들이 이상한 것의 의미를 오해한다.

  • isOdd("str")거짓이어야 합니다.
    이치
  • isOdd(1.223) ★★★★★★★★★★★★★★★★★」isOdd(-1.223)거짓이어야 합니다.
    플로트는 정수가 아닙니다.
  • isOdd(0)거짓이어야 합니다.
    0은 짝수 정수(https://en.wikipedia.org/wiki/Parity_of_zero))입니다.
  • isOdd(-1)사실이어야 합니다.
    홀수 정수예요

솔루션

function isOdd(n) {

  // Must be a number
  if (isNaN(n)) {
    return false;
  }

  // Number must not be a float
  if ((n % 1) !== 0) {
    return false;
  }

  // Integer must not be equal to zero
  if (n === 0) {
    return false;
  }

  // Integer must be odd
  if ((n % 2) !== 0) {
    return true;
  }

  return false;
}

JS Fidle (필요한 경우): https://jsfiddle.net/9dzdv593/8/

원라이너

Javascript 1-라이너 솔루션.가독성을 중시하지 않는 분들을 위해.

const isOdd = n => !(isNaN(n) && ((n % 1) !== 0) && (n === 0)) && ((n % 2) !== 0) ? true : false;

-1 또는 0 중 하나에 도달할 때까지 반복적으로 2를 뺍니다(명백히 양의 정수에만 해당).

홀수를 2로 나누면 1이 남고, 짝수를 0으로 나누면 0이 남습니다.따라서 이 코드를 사용할 수 있습니다.

  function checker(number)  {
   return number%2==0?even:odd;
   }

이건 어때...

    var num = 3 //instead get your value here
    var aa = ["Even", "Odd"];

    alert(aa[num % 2]);

이게 내가 한 일이야

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

어떤 이유에서인지 어레이의 길이를 1개씩 줄여야 했습니다.그렇지 않으면 oderNumbers 배열의 마지막 요소에 "정의되지 않음"이 표시됩니다.

부울을 반환하려면 다음을 구현합니다.

function isOdd (n) {
    return !!(n % 2);
    // or ((n % 2) !== 0).
}

서명되지 않은 번호와 서명되지 않은 번호 모두 사용할 수 있습니다. 반환 시-1 ★★★★★★★★★★★★★★★★★」1이 될 거예요.true.

비모듈러스 솔루션:

var is_finite = isFinite;
var is_nan = isNaN;

function isOdd (discriminant) {
    if (is_nan(discriminant) && !is_finite(discriminant)) {
        return false;
    }

    // Unsigned numbers
    if (discriminant >= 0) {
        while (discriminant >= 1) discriminant -= 2;

    // Signed numbers
    } else {
        if (discriminant === -1) return true;
        while (discriminant <= -1) discriminant += 2;
    }

    return !!discriminant;
}

3진 연산자를 사용하면 홀수 짝수를 찾을 수 있습니다.

var num = 2;
result = (num % 2 == 0) ? 'even' : 'odd'
console.log(result);

filter() 메서드를 사용한 다른 예:

let even = arr.filter(val => {
  return val % 2 === 0;
});
// even = [2,4,6]

답변이 너무 많은데 한 가지만 말씀드릴게요.

은 '로'와 같은 '로' 좋습니다.% 2 이 .& 1둘 다 같은 결과를 얻을 수 있습니다.그러나 그들의 우선순위는 다르다.다음과 같은 코드 조각이 필요하시면 말씀하세요.

i%2 === p ? n : -n

그냥 괜찮은데 비트 연산자를 사용하면 다음과 같이 할 수 있습니다.

(i&1) === p ? n : -n

그게 바로 그거죠.

이것은 어레이에 대해서 유효합니다.

function evenOrOdd(numbers) {
  const evenNumbers = [];
  const oddNumbers = [];
  numbers.forEach(number => {
    if (number % 2 === 0) {
      evenNumbers.push(number);
    } else {
      oddNumbers.push(number);
    }
  });

  console.log("Even: " + evenNumbers + "\nOdd: " + oddNumbers);
}

evenOrOdd([1, 4, 9, 21, 41, 92]);

로그아웃 됩니다.4,92 1,9,21,41

몇 개만 있으면 됩니다.

function evenOrOdd(number) {
  if (number % 2 === 0) {
    return "even";
  }

  return "odd";
}

console.log(evenOrOdd(4));

콘솔에도 출력할 수 있습니다.

번호가 홀수인지 아닌지를 확인하는 방법

let numbers = [11, 20, 2, 5, 17, 10];

let n = numbers.filter((ele) => ele % 2 != 0);

console.log(n);

언급URL : https://stackoverflow.com/questions/5016313/how-to-determine-if-a-number-is-odd-in-javascript

반응형