简体   繁体   English

前100个素数javascript,为什么我的素数数组后变得不确定?

[英]First 100 primes javascript, why do I get undefined after my array of primes?

I get the 100 primes printed, but I also get undefined at the end. 我得到了100个素数,但最后也没有定义。 Why would that be? 为什么会这样呢?

function HundoPrimeNumbers() {
    var primes = [];

    function isPrime(n) {
        if (isNaN(n) || !isFinite(n) || n % 1 || n < 2) return false;
        var m = Math.sqrt(n);
        for (var i = 2; i <= m; i++) if (n % i == 0) return false;
        primes.push(n);
    }

    var n = 0
    while (primes.length < 100) {
        isPrime(n);
        n++;
    }
    console.log(primes.join());
}

console.log(HundoPrimeNumbers());

You are logging the result of HundoPrimeNumbers : 您正在记录HundoPrimeNumbers的结果:

console.log(HundoPrimeNumbers()); 

HundoPrimeNumbers does not have a return statement. HundoPrimeNumbers没有return语句。 When a function doesn't have a return statement, or returns without a value, like return; 当一个函数没有return语句或没有值的return; ,例如return; , it actually ends up returning undefined . ,实际上最终返回undefined This then gets logged to the console. 然后将其记录到控制台。

Solution: call it like this: 解决方案:这样称呼它:

HundoPrimeNumbers();

undefined是console.log()的返回值

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM