亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 forEach 循環在 Javascript 中生成 1 到 50 之間的質數

使用 forEach 循環在 Javascript 中生成 1 到 50 之間的質數

PHP
森欄 2023-10-21 15:48:51
這是我的代碼,但我的答案不是我想要的..請檢查此并給我一個使用 Foreach 循環 b/w 1-50 獲取素數的解決方案提前致謝 :)function isPrime(num) {    for ( var i = 2; i < num; i++ ) {        if ( num % i === 0 ) {            return false;        }    }    return true;}    var txt = "";    function shown(n) {        var arr = [2];        arr.forEach(myFunction);document.getElementById("foreach").innerHTML = txt;// document.getElementById('forLoop').innerHTML = arr; // use arr result on your own}function myFunction(arr, index, array) {var i;var arr = [2];if ( isPrime(i) ) {    arr.push(i);      }  txt += arr + "<br>"; }shown(50);
查看完整描述

4 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

對于這個級別的作業來說,這可能是一個太高級的答案,但從技術上講,它遵循規則(使用 Array.forEach)并且有效。

primes()基于先前的素數生成新的素數。所以不會測試所有整數的提醒,從而更有效。為了保持簡短,也有幾種箭頭函數的用途。如果您確實使用這個答案,請嘗試閱讀相關文檔并了解:

  • 迭代器和生成器

  • 箭頭函數表達式

  • 為了...的

  • 模板文字

認真地,試著一步一步地思考。這就是你學習任何東西的方式。

function* primes() {

? const previous = [];


? for (let i = 2; true; i++) {

? ? let isPrime = true;

? ? for (let p of previous) {

? ? ? if (i % p === 0) {

? ? ? ? isPrime = false;

? ? ? ? break;

? ? ? }

? ? }

? ? if (isPrime) {

? ? ? previous.push(i);

? ? ? yield i;

? ? }

? }

}


function* takeUntil(cb, iter) {

? for (let val of iter) {

? ? if (cb(val)) {

? ? ? return;

? ? }

? ? yield val;

? }

}


function showArrayIn(arr, container) {

? arr.forEach(p => container.innerHTML += `${p},<br/>`); // technically, we used Array.forEach.

}


showArrayIn(

? // get the prime number array declarativly?

? Array.from(takeUntil(n => n >= 50, primes())),

? // show in the container specified

? document.getElementById("results")

);

Primes:

<div id="results"></div>


查看完整回答
反對 回復 2023-10-21
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

考慮以下示例。


function isPrime(num) {

  if (num === 1) {

    return false;

  } else if (num === 2) {

    return true;

  } else {

    for (var x = 2; x < num; x++) {

      if (num % x === 0) {

        return false;

      }

    }

    return true;

  }

}


function shown(n) {

  var list = [];

  for (var i = 1; i <= n; i++) {

    list.push(i);

  }

  list.slice().reverse().forEach(function(n, k, o) {

    if (!isPrime(n)) {

      list.splice(o.length - 1 - k, 1);

    }

  });

  document.getElementById("show").innerHTML = list;

}


shown(50);

Prime: <p id="show"></p>


查看完整回答
反對 回復 2023-10-21
?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

function primeFactorsTo(max)

{

    var store  = [], i, j, primes = [];

    for (i = 2; i <= max; ++i) 

    {

        if (!store [i]) 

          {

            primes.push(i);

            for (j = i << 1; j <= max; j += i) 

            {

                store[j] = true;

            }

        }

    }

    return primes;

}


console.log(primeFactorsTo(5));


console.log(primeFactorsTo(15));


查看完整回答
反對 回復 2023-10-21
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

我認為這是我應得的正確答案..這是代碼愛好者的簡短而激進的


function primes(limit)

{

  var prime=[], i=1;

  while (++i < limit+1) prime.reduce((a,c)=>(i%c)*a,1) && prime.push(i);

  prime.unshift(2);

  return prime;

}

[50].forEach(n=>document.getElementById('foreach').innerHTML=(`${primes(n)}`));


查看完整回答
反對 回復 2023-10-21
  • 4 回答
  • 0 關注
  • 173 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號