javascript - 使用For循环返回数组中可被3整除的数字?
问题描述
我正在尝试使用如下所示的 for 循环将在下面的数组中可被 3 整除的数字返回到控制台。
它将数字 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){
将在true
任何时候返回模运算的结果不是0
因为任何非零数转换为true
.
语句应该是: 因为如果除以 3 并且余数是 ,if(i % 3 === 0){
您只想分支到该部分。true
0
接下来,您将使用循环索引作为要操作的数字,但您需要将数组项与循环计数器的索引一起使用numbers[i]
,而不是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]);
}
}
此外,这里更简单的方法可能是使用Array.filter()
,它遍历数组并返回具有您指定的值的新数组:
var numbers = [1,2,3,4,5,6,7,8,9,10];
var results = numbers.filter(function(num){
return num % 3 === 0;
});
console.log(results);
推荐阅读
- reactjs - Bitbucket Pipelines 中的导入/未解析
- django - 使用 django-heroku 删除 django 和 heroku-postgress 的问题
- java - Tomcat生成空的访问日志文件
- flutter - 如何在颤振中实现自定义 ScrollPhysics?
- apache-spark - Spark 的示例在客户端模式下抛出 FileNotFoundException
- c# - 如何使用 MailGun API 处理多个域?
- vue.js - 在 nuxt 中为移动设备加载不同的页面模板
- jquery - 联系 Form7 比较日期和条件
- python - 使用队列进行迭代河内塔的逻辑?
- javascript - 如何从方法 JS 访问类变量