我正在尝试将下面数组中可被 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
,因为任何非零数字都会转换为 真
。
语句应该是:if(i % 3 === 0){
因为如果除以 3 和余数为 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);
关于javascript - 使用 For 循环返回数组中可被 3 整除的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50239356/