JS实现素数筛选与数组去重的日常练习

需积分: 8 0 下载量 44 浏览量 更新于2024-11-07 收藏 881B ZIP 举报
资源摘要信息:"js代码-4.6 日练习:筛选素数/reduce 数组去重" 本资源包含两个文件,一个是JavaScript代码文件main.js,另一个是文档说明README.txt。其中JavaScript代码文件包含4.6日的编程练习内容,主要练习了筛选素数和利用reduce方法进行数组去重的技巧。 ### 素数筛选 素数是只能被1和它本身整除的大于1的自然数。在编程中,我们经常需要判断一个数是否为素数,或者筛选出一定范围内所有的素数。以下是在JavaScript中进行素数筛选的方法: #### 素数判断函数 通常,判断一个数n是否为素数,可以使用一个函数来实现,该函数会检查从2到sqrt(n)(n的平方根)之间是否有任何数能整除n,如果没有,则n为素数。 ```javascript function isPrime(n) { if (n <= 1) return false; // 小于等于1的数不是素数 if (n <= 3) return true; // 2和3是素数 // 排除所有能被2或3整除的数 if (n % 2 === 0 || n % 3 === 0) return false; // 检查从5开始的奇数,跳过能被3整除的数 for (let i = 5; i * i <= n; i += 6) { if (n % i === 0 || n % (i + 2) === 0) return false; } return true; } ``` #### 筛选素数函数 一旦有了素数判断函数,就可以轻松编写一个函数来筛选出一段范围内的所有素数。 ```javascript function getPrimes(start, end) { const primes = []; for (let i = start; i <= end; i++) { if (isPrime(i)) { primes.push(i); } } return primes; } ``` ### reduce方法数组去重 reduce方法是JavaScript中Array对象的一个非常有用的函数式编程方法,它可以用来累积数组中的值并最终返回一个单一的输出值。 #### reduce方法介绍 reduce方法接受一个回调函数作为参数,回调函数的参数包括累加器(accumulator)、当前值(currentValue)、当前索引(currentIndex)、源数组(array)。回调函数会被执行,以累加器和数组中的每个元素作为参数,最终返回累加的结果。 ```javascript const array = [1, 2, 3, 4, 5]; const sum = array.reduce((accumulator, currentValue) => { return accumulator + currentValue; }, 0); // 初始值为0 console.log(sum); // 输出15 ``` #### 利用reduce方法去重 利用reduce方法可以很容易地对数组进行去重,通过累积器来存储不重复的元素。 ```javascript function uniqueArray(array) { return array.reduce((accumulator, currentValue) => { // 如果累加器中已存在当前元素,则忽略当前元素;否则,将其添加到累加器中 if (!accumulator.includes(currentValue)) { accumulator.push(currentValue); } return accumulator; }, []); } ``` ### 文件解读 在本资源中,main.js文件可能包含上述提到的素数筛选和数组去重的实际代码实现。README.txt文件则可能提供文件使用说明、练习题目要求和代码解释等内容。 通过这次练习,学习者应该能够掌握如何使用JavaScript编写用于素数筛选和数组去重的函数。这些技能在处理数组数据时非常有用,尤其是在需要去重或筛选特定数据时。