📅  最后修改于: 2023-12-03 15:42:01.331000             🧑  作者: Mango
当我们操作数组时,有时需要修改其内容以满足特定要求。本文将介绍如何通过合并元素和添加元素,修改数组,使其仅包含素数。
素数是只能被1和自身整除的自然数,例如2、3、5、7、11等。在编程中,常常需要对数组进行筛选,只保留其中的素数。
我们可以使用for循环来遍历数组,并使用判断语句过滤掉非素数。该方法可以通过数组的splice()方法删除非素数元素,如下所示:
let arr = [2, 3, 4, 5, 6, 7, 8, 9, 10];
for (let i = arr.length - 1; i >= 0; i--) {
if (!isPrime(arr[i])) {
arr.splice(i, 1);
}
}
function isPrime(num) {
if (num < 2) {
return false;
}
for (let i = 2; i < num; i++) {
if (num % i === 0) {
return false;
}
}
return true;
}
但是,splice()方法会导致数组的索引发生变化,因此我们需要从后往前循环遍历,以避免索引的变化。
另一个方法是,创建一个新的数组,将素数元素添加到其中,如下所示:
let arr = [2, 3, 4, 5, 6, 7, 8, 9, 10];
let primes = [];
for (let i = 0; i < arr.length; i++) {
if (isPrime(arr[i])) {
primes.push(arr[i]);
}
}
function isPrime(num) {
if (num < 2) {
return false;
}
for (let i = 2; i < num; i++) {
if (num % i === 0) {
return false;
}
}
return true;
}
此方法创建了一个新的空数组,遍历原数组,将素数元素添加到新数组中。由于新数组的长度与素数元素的数量相等,因此不需要再进行数组的截取或删除。
通过以上两种方法,我们可以修改数组使其仅包含素数,可以根据实际情况选择代码简洁但效率不高的方法1,或者代码复杂但效率较高的方法2。在实际应用中,还可以根据需求,添加更多的优化代码,以提高程序的性能。