Codewars质差实现中的RangeError

问题描述 投票:0回答:1

所以我对codewars上的gap primes问题有完整的代码,但是当我执行它时,出现错误:有时候肯定的结果比之前的检查结果还要多,所以我不知道如何解决它,也许这是优化的问题,但是我确信这样可以很快。

RangeError: Invalid array length at primeSieve at gap at /home/codewarrior/index.js:113:32 at begin at Object.it at /home/codewarrior/index.js:112:14 at /runner/frameworks/javascript/cw-2.js:152:11 at Promise._execute at Promise._resolveFromExecutor at new Promise at Object.describe at /home/codewarrior/index.js:60:6 at /home/codewarrior/index.js:125:5 at Object.handleError

这是我的代码:

function gap(g, m, n) {
let arr = [];
let arr2 = [];
function primeSieve(n){
var a = Array(n = n/2),
   t = (Math.sqrt(4+8*n)-2)/4,
   u = 0,
   r = [];
for(var i = 1; i < (n-1)/3; i++) a[1+3*i] = true;
for(var i = 2; i <= t; i++){
 u = (n-i)/(1+2*i);
 if (i%3-1) for(var j = i; j < u; j++) a[i + j + 2*i*j] = true;
}
for(var i = 0; i< n; i++) !a[i] && r.push(i*2+1);
return r;
}
arr2 = primeSieve(n);
arr = arr2.filter(num=>(num >= m) && (num <= n));
for(let i = 0;i<=arr.length;i++){
  let nextValue = i+1;
    if(arr[nextValue] - arr[i] === g){
     return [arr[i],arr[nextValue]]
    } 
}

return null;
}

所以我在codewars上有一个关于gap primes问题的完整代码,但是当我执行它时,我得到了一个错误:有时,积极的结果比以前的检查要多,所以我不确定如何...] >

javascript arrays algorithm primes
1个回答
0
投票
var a = Array(n = n/2)

如果n为奇数,则说明您正在创建一个非整数长度的数组,这说明了RangeError: Invalid array length

© www.soinside.com 2019 - 2024. All rights reserved.