簡體   English   中英

JavaScript循環推送到新數組

[英]JavaScript loop push to new array

我試圖將所有可被3整除的數字壓入一個新數組“ threes”,但是卻碰壁了為什么此代碼無法正常工作。

var numbers = function () {
  var threes =[]
  for (i = 0; i < numbers.length; i++) {
    if (iLoveThree[i] % 3 === 0){
      threes.push(numbers[i])
    }
  }
  return threes
}

我已經解決了您的問題,創建了一個新的html文件並輸入以下內容:

<!doctype html>
<HTML>

    <BODY>
        <SCRIPT>
            (function(){
                var numbers = function (iLoveThree) {
                    var threes =[];
                    for (i = 0; i < iLoveThree.length; i++) {
                        if (iLoveThree[i] % 3 === 0){
                            threes.push(iLoveThree[i]);
                        }
                      }
                    return threes;
                }
                alert(numbers([1, 2, 3, 4, 5, 6]));
            })();
        </SCRIPT>
    </BODY>
</HTML>

希望能幫助到你 :)
說明:
-您需要包含函數參數,此參數將在函數內部訪問(該參數名為iLoveThree)
-您使用的是數字變量,但此變量以前未聲明過,我通過將數字更改為iLoveThree來解決此問題
-你錯過了幾個; (分號),很簡單,但會給您帶來很多麻煩

PS:感謝RobG提醒我要提供解釋。

我認為只對數字使用過濾器會更簡單

var threes = numbers.filter(function(number) {
  return number % 3 === 0;
});

您的示例有兩個問題:

  • 您已將函數命名為“ numbers”,但還引用了函數內部不存在的名為“ numbers”的數組
  • iLoveThree被引用為數組,但從未聲明

根據您的應用程序的需要,您可能需要將所有數值都除以最小值和最大值之間的三個數,或者可能需要從預定義數組中抽取可被三除數的數字。 我在下面的代碼中包含了這兩種情況的示例:

 var isDivisibleByThree = function(num){ return i % 3 === 0; } var getThrees = function (min, max) { // given a numeric min and max value, // return all numbers from a minimum to a maximum value that are divisible by three var threes =[]; for (i = min; i <= max; i++) { if (isDivisibleByThree(i)){ threes.push(i); } } return threes; } var getThreesFromArray = function(numbers){ // given an array of numbers, // return a subset of that array including only numbers divisible by 3 var threes = []; for (i = 0; i < numbers.length; i++) { if (isDivisibleByThree(numbers[i])){ threes.push(i); } } return threes; } var fromZeroTo50 = getThrees(0, 50); var fromArray = getThreesFromArray([5, 0, 6, 17, 12, 4, 18]); // Grab example values and display them in the HTML for demonstration purposes document.getElementById("fromZeroTo50").innerHTML = fromZeroTo50.join(","); document.getElementById("fromArray").innerHTML = fromArray.join(","); 
 <h2>Get all threes from 0 to 50: </h2> <div id="fromZeroTo50"></div> <h2>Get threes from a pre-defined array: </h2> <div id="fromArray"></div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM