【发布时间】:2017-05-26 19:06:19
【问题描述】:
我有一个返回素数数组的函数:
function getPrimeFactors(n) {
var factors = [];
for (i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
var count = 0;
while (n % i === 0) {
n = n / i;
count++;
}
for (j = 1; j <= count; j++) {
factors.push(i);
}
}
}
if (n !== 1) {
factors.push(n);
}
return factors;
}
var numbers = [2, 3, 4, 5];
var array = [];
我想得到numbers数组中所有数字的素因子,并将其推入一个新的数组(array)
for(i = 0; i < numbers.length; i++) {
array.push(getPrimeFactors(numbers[i]));
}
我做错了什么?
【问题讨论】:
-
我点了正确的答案然后消失了……谁删除了正确的答案?大声笑
-
顺便说一句,等待将推回正确答案的人:D您需要在循环内为您的 i 变量使用 var ,否则 i 被视为全局变量。当然,也将 var 应用于 j,即使 j 只使用一次,这里的问题是 i
-
感谢您的帮助。正确声明变量是我的问题。
标签: javascript function loops push