javascript – 使用For循环返回在数组中可被3整除的数字?

我试图将数字返回到控制台,在下面的数组中可以被3整除,使用for循环,如下所示.

它将数字2-9返回到控制台,但不是可被3整除的数字?我很难过?我究竟做错了什么?

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

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

解决方法

if语句根据条件语句的结果进行分支. if(i%3){将在模运算的结果不为0时返回true,因为任何非零数字都会转换为true.

该陈述应该是:if(i%3 === 0){因为如果除以3并且余数为0,你只想分支到真部分.

接下来,您使用循环索引作为要操作的数字,但是您需要使用带有循环计数器编号[i]的索引的数组项,而不是i.

var numbers = [1,10]

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

此外,这里更简单的方法可能是使用Array.filter(),它循环数组并返回一个新数组,其中包含您指定的值:

var numbers = [1,10];

var results = numbers.filter(function(num){
  return num % 3 === 0;
});

console.log(results);

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...