尋找數組中的質數方法
好久沒寫博客了,今天翻到了數組find方法,看到有找質數的算法,就整理一下。
function isPrime(element, index, array) { var start = 2; while (start <= Math.sqrt(element)) { if (element % start++ < 1) { return false; } } return element > 1; }
剛開始看是一臉懵逼的,尤其是 element % start++ < 1 這里,還去找了一下運算符的優先級

++是最高的,看起來也頭大,再拆分一下
function isPrime(element, index, array) { var start = 2; while (start <= Math.sqrt(element)) { if (element % start < 1) { return false; } else { start ++ } } return element > 1; }
這樣應該就好理解了。找到當前元素開平方根,如果開始元素小于這個平方根就去判斷取余數是否小于1,小于1則表示能被整除,就不是質數,否則就把開始元素加1再進行判斷。
最后測試: [4, 5, 6, 7, 8, 9].filter(isPrime) // [5,7]
浙公網安備 33010602011771號