我试图将数字返回到控制台,在下面的数组中可以被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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。