繁体   English   中英

数组迭代:将 forEach 循环重写为 for 循环

[英]Array iteration: Rewriting forEach loop to for loop

对于一个练习,我必须将此 forEach 循环重写为一个 for 循环:

var numbers = [1,2,3,4,5,6,7,8,9,10];

numbers.forEach(function(number){
  if(number % 3 === 0) {
   console.log(number);
  }
});

我想出了以下内容,但它并没有真正起作用,因为它给了我未定义:

        var numbers = [1,2,3,4,5,6,7,8,9,10];

        for(var i = 0; i < numbers.length; i++) {
        if(numbers % 3 === 0) {
        console.log(numbers);
        } 
    };

有人可以向我解释出了什么问题吗?

if(numbers[i] % 3 === 0) {
     console.log(numbers[i]);
 } 

您需要第i-th (当前一个)元素numbers

 var numbers = [1,2,3,4,5,6,7,8,9,10]; for(var i = 0; i < numbers.length; i++) { if(numbers[i] % 3 === 0) { // ^^^---here console.log(numbers[i]); // ^^^---here } };

您必须使用数字的第 i 个元素。

 var numbers = [1,2,3,4,5,6,7,8,9,10]; for(var i = 0; i < numbers.length; i++) { if(numbers[i] % 3 === 0) { console.log(numbers[i]); } };

 var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; function fun(number) { if (number % 3 === 0) { console.log(number); } } // Your code with `forEach` numbers.forEach(fun); // Same with for-loop when convert for (var i = 0; i < numbers.length; i++) { fun(numbers[i]); } // you are using `numbers % 3`, numbers is an array and you actually you wanted to use with number (which will be `numbers[i]`

暂无
暂无

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

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