【发布时间】:2021-07-16 03:00:48
【问题描述】:
我正在创建一个小程序来接收一个数组,然后尝试为给定数组中的每个数字返回一个质因数数组。我想我非常接近拥有它,现在它似乎重复了主要因素(即对于数字 21,它返回“3、7、7、7、7、7”)。我希望它只返回每个素数一次(即对于 21,它将返回“3、7”)。我相信这可能只是一个小小的调整。此外,如果有人对尝试实现此目的的另一种方法有任何意见,或者对清理代码有任何建议。目前,我的方法似乎有点不正统。谢谢!
var testArray = [3, 4, 5, 6, 21, 45, 101, 567, 30, 10];
var finalArray = [
[],
[],
[],
[],
[],
[],
[],
[],
[],
[]
];
factors(testArray, finalArray);
function factors(arr, emptyArr){
for (var x = 0; x < arr.length; x++){
for (y = 2; y < arr[x]; y++){
if (arr[x] % y !== 0){
continue;
}
for (i = 2; i < y; i++){
if (y % i !== 0){
emptyArr[x].push(y);
}
}
}
}
}
console.log(finalArray[4]);
【问题讨论】:
-
这感觉更像是一个codereview 问题,而答案反映了这一点。你应该看看那个网站。
-
@PresidentJamesK.Polk 我对堆栈溢出很陌生。 codereview 是否是网站的不同部分,具有不同的目的?请原谅我对此缺乏了解,只是不知道是否有特定的地方我应该问我的问题。如果您能详细说明 codereview 和 stackoverflow 站点之间的区别,将不胜感激!
-
我认为 Stack Exchange 旗下有一百多个不同的站点。当您访问某个站点时,您会看到一个问号按钮,其中包含指向该站点帮助部分的链接。在那里,您将简要说明该网站的内容以及应该在那里提出哪些问题。
标签: javascript primes