仅将最后一个值推送到数组

11223342124

我正在研究质数算法,并且几乎完成了它。.我认为输出数组在每次循环完成时都会更新,因此如果我用质数调用函数:例如primes(7),我得到了[7]而不是[2,3,5,7]如果使用非质数调用,则输出arr为空。

这是代码:

function rimes(num){
    var outputArr = [];

    for(var i=1; i<=num; i++){  
        function range(start, count) {
            return Array.apply(0, Array(count))
                    .map(function (element, index) { 
                             return index + start;  
                         });
        }
        var rangeArr = range(1,num);
        var current = i;

        function rangeFiltering(value){
            return value !== 1 && value < current;
        }
        var filteredRange = rangeArr.filter(rangeFiltering);

        function dividingByEachRangeElement(rangeElement){
          return current % rangeElement !== 0;
        }
        var divided = filteredRange.filter(dividingByEachRangeElement);

        if(divided.length === num - 2){  //current is prime if there are all numbers from 1 to current in divided array.(if there are zeros after modulo) i.e. when current is 5(prime), divided array is [2,3,4]. When current is 6(non prime), divided arr is [4,5] - 2,3 are missing because 6%2 = 0 and 6%3 = 0. 
            outputArr.push(current);
        }
    }
    console.log(outputArr);
}
sumPrimes(47);


//sumPrimes(6)  -> [];
//sumPrimes(7)  -> [7];
//sumPrimes(11) -> [11];

我怎样才能解决这个问题?

工程师营

您的问题就在网上:

if(divided.length === num - 2)

这意味着仅outputArr当的长度divided等于时才将当前数字添加到该数字,仅在您的示例情况下等于num - 2时才为true icurrent7

更改为:

if(divided.length === current - 2)

应该做到的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript仅将for循环中的最后一个条目推送到对象

jQuery推送到多维数组只返回最后一个值

将一个数字分成相等的值并推送到一个数组

使用 Key 将数组值推送到另一个数组

仅将一个文件推送到GIT

将对象推送到数组中,始终推送最后一个数组

如何将数组列表的第一个值推送到对象?

jQuery:如何将文件推送到另一个输入数组值?

VueJS 推送到一个数组也会将值推送到另一个

PHP 如何将关联数组(不是它的值)推送到另一个数组?

每次将新行推送到数组时,编辑数组中的第一个值

For 循环仅将数组的最后一个值分配给事件侦听器

PHP:如何将另一个数组推送到一个数组,但没有为数组创建新值

数组合并或将一个数组的键和值推送到另一个数组中

在最后一个PHP中将元素推送到数组中

仅将最后一个值插入Coredata中

如何将每个函数的所有值推送到一个数组中 - PHP DomCrawler

仅将一些提交推送到另一个git存储库

拉数组对象值然后推送到另一个数组

从数组中删除一个值(如果存在)或不存在将其推送到数组

如何将数组推送到另一个数组内的对象中?

如何逐项将数组项推送到另一个数组

使用Javascript将数据推送到另一个数组中的数组

如何将数据从数组/对象推送到另一个数组/对象?

将 3 个随机名称推送到一个新数组中

仅将电子邮件发送到电子邮件数组中的第一个值

Django频道组发送仅将消息发送到最后一个频道

递归推送仅添加最后一个元素

我如何将消息流推送到一个数组中?