首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript中的Prime Checker函数仅返回包含多个质数的数组中的一个质数

javascript中的Prime Checker函数仅返回包含多个质数的数组中的一个质数
EN

Stack Overflow用户
提问于 2020-10-03 18:47:04
回答 1查看 55关注 0票数 0

下面是我用来遍历一个数组并挑选出质数并将它们推入一个空数组的代码。我的问题是,当我在此节点时,它只返回代码在数组中找到的第一个质数,而不管数组中是否还有更多的质数。我找不到我可能错过的..。

代码语言:javascript
复制
 let primeXray = function(num) {
    if (num < 2)
        return false;

    for (i = 2; i < num; i++) {
        if (num % i === 0) {
            return false;
        }
    }
    return true;
}

let choosePrimes = function(nums) {
    let primeBlock = [];
    for (i = 0; i < nums.length; i++) {
        let num = nums[i];
        if (primeXray(num)) {
            primeBlock.push(num);
        }
    }
    return primeBlock;
}




console.log(choosePrimes([36, 48, 9, 13, 19])); // [ 13, 19 ]
console.log(choosePrimes([5, 6, 4, 11, 2017])); // [ 5, 11, 2017 ]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-03 19:11:33

问题是您没有用letvar声明i,所以它是由JS创建并重用的。您的primeXray更改了i,从而干扰了另一个function

代码语言:javascript
复制
let primeXray = function(num) {
    if (num < 2)
        return false;

    for (let i = 2; i < num; i++) {
        if (num % i === 0)
            return false;
    }
    return true;
}

let choosePrimes = function(nums) {
    let primeBlock = [];
    for (let i = 0; i < nums.length; i++) {
        let num = nums[i];
        if (primeXray(num))
            primeBlock.push(num);
    }
    return primeBlock;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64183365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档