使用filter函数筛选出素数

function getPrimeNumber(arr) {
   return arr.filter(function (number) {
    if (typeof number !== 'number' || number<2) {
      // 不是数字或者数字小于2
      return false;
    }
    if (number === 2) {
      return true;
    } else if (number % 2 === 0) {
      // 排除偶数
      return false;
    }
    // 从3开始,且已经排除偶数,所以每次加2
    for(var i = 3; i < number; i += 2) {
      if (number % i === 0) {
         return false;
      }
    }
    return true;
  })
}
getPrimeNumber(Array.from(new Array(101).keys())); 结果: (25) [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

 

posted @ 2018-09-06 17:45  刘倩文  阅读(1177)  评论(0编辑  收藏  举报