第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

測試值是奇數(shù)還是偶數(shù)

測試值是奇數(shù)還是偶數(shù)

慕哥6287543 2019-10-16 10:32:54
我決定使用非常簡單的算法創(chuàng)建簡單的isEven和isOdd函數(shù):function isEven(n) {  n = Number(n);  return n === 0 || !!(n && !(n%2));}function isOdd(n) {  return isEven(Number(n) + 1);}如果n具有某些參數(shù),那是可以的,但是在許多情況下會失敗。因此,我著手創(chuàng)建健壯的函數(shù),以便在盡可能多的情況下提供正確的結(jié)果,以便僅測試javascript數(shù)字限制內(nèi)的整數(shù),其他所有結(jié)果均返回false(包括+和-無限)。注意零是偶數(shù)。// Returns true if:////    n is an integer that is evenly divisible by 2//// Zero (+/-0) is even// Returns false if n is not an integer, not even or NaN// Guard against empty string(function (global) {  function basicTests(n) {    // Deal with empty string    if (n === '')       return false;    // Convert n to Number (may set to NaN)    n = Number(n);    // Deal with NaN    if (isNaN(n))       return false;    // Deal with infinity -     if (n === Number.NEGATIVE_INFINITY || n === Number.POSITIVE_INFINITY)      return false;    // Return n as a number    return n;  }  function isEven(n) {    // Do basic tests    if (basicTests(n) === false)      return false;    // Convert to Number and proceed    n = Number(n);    // Return true/false    return n === 0 || !!(n && !(n%2));  }  global.isEven = isEven;  // Returns true if n is an integer and (n+1) is even  // Returns false if n is not an integer or (n+1) is not even  // Empty string evaluates to zero so returns false (zero is even)  function isOdd(n) {    // Do basic tests    if (basicTests(n) === false)      return false;    // Return true/false    return n === 0 || !!(n && (n%2));  }  global.isOdd = isOdd;}(this));誰能看到上述任何問題?是否有更好的版本(即更準確,更快或更簡潔而不被混淆)?有許多與其他語言有關(guān)的帖子,但是我似乎找不到ECMAScript的權(quán)威版本。
查看完整描述

3 回答

?
GCT1015

TA貢獻1827條經(jīng)驗 獲得超4個贊

使用模數(shù):


function isEven(n) {

   return n % 2 == 0;

}


function isOdd(n) {

   return Math.abs(n % 2) == 1;

}

您可以使用以下命令檢查Javascript中的任何值是否可以強制轉(zhuǎn)換為數(shù)字:


Number.isFinite(parseFloat(n))

此檢查最好應(yīng)在isEven和isOdd函數(shù)外部進行,這樣您就不必在兩個函數(shù)中重復(fù)進行錯誤處理。


查看完整回答
反對 回復(fù) 2019-10-16
?
慕神8447489

TA貢獻1780條經(jīng)驗 獲得超1個贊

我更喜歡使用一點測試:


if(i & 1)

{

    // ODD

}

else

{

    // EVEN

}

這將測試是否在第一個位上表示一個奇數(shù)。


查看完整回答
反對 回復(fù) 2019-10-16
?
青春有我

TA貢獻1784條經(jīng)驗 獲得超8個贊

注意:也有負數(shù)。


function isOddInteger(n)

{

   return isInteger(n) && (n % 2 !== 0);

}

哪里


function isInteger(n)

{

   return n === parseInt(n, 10);

}


查看完整回答
反對 回復(fù) 2019-10-16
  • 3 回答
  • 0 關(guān)注
  • 704 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號