2015-06-18 56 views
4

我創建了一個函數來測試一個給定的參數是否是平方數。JavaScript中測試給定參數是平方數的最佳方法是什麼?

閱讀有關此平方數:https://en.wikipedia.org/?title=Square_number

如果數字是一個平方數,則返回否則。負數也會返回false

例子:

isSquare(-12) // => false 
isSquare(5) // => false 
isSquare(9) // => true 
isSquare(25) // => true 
isSquare(27) // => false 

現在,我使用這個方法:http://jsfiddle.net/marcusdei/ujtc82dq/5/

但是,有沒有把工作做得更短更清潔的方式?

+0

完整的數字到底是什麼錯誤的引用方法?不會比這個短得多......(而且它也很乾淨,IMO也是) – Daniel

+0

是的,我只是覺得這個更短,不清楚清潔,但:http://jsfiddle.net/marcusdei/ujtc82dq/7/ – mdarmanin

回答

21

試試這個:

var isSquare = function (n) { 
    return n > 0 && Math.sqrt(n) % 1 === 0; 
}; 
  1. 檢查數量爲正
  2. 檢查sqrt是即integer

Demo

+1

我不認爲你需要檢查值是否大於0.另外0在技術上是一個平方數。在你的情況下,它會評估爲false。 – mpn

+0

@mpn對於'0'來說是完美的方形,你是對的。對於負數,可以保存一個函數調用。 – Tushar

相關問題