计数质数
其基本步骤是从最小的素数2开始,将该素数的所有倍数标记成合数,而下一个尚未被标记的最小自然数3即是下一个素数。如此重复这一过程,将各个素数的倍数标记为合数并找出下一个素数,最终便可找出一定范围内所有素数
1 | /** |
chatGPT给我一段很有意思的代码return isPrime.filter(Boolean).length
Array.prototype.filter(fn)
filter(fn)接收一个回调函数fn,这个函数返回true的元素会被保留下来:arr.filter(x => x > 0); // 只保留大于0的元素
Boolean是什么?
1 | Welcome to Node.js v16.13.2. |
Boolean本质上是一个函数Boolean(n)
返回他自己就是一个布尔值
这样子将可能不直观
来看node代码
1 | Welcome to Node.js v16.13.2. |
把false这个值传递给Boolean这个构造函数,他返回了Boolean(false)这个值,而这个值就是false
所以上面的代码就相当于
1 | return isPrime.filter(o => Boolean(o)).length |