Cal*_*Cap 3 javascript arrays loops
我试图将数字返回到控制台,在下面的数组中可以被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]);
}
}
Run Code Online (Sandbox Code Playgroud)
Sco*_*cus 10
该if语句根据条件语句的结果进行分支.if(i % 3){将true随时返回模运算的结果,0因为任何非零数字都会转换为true.
该陈述应该是: if(i % 3 === 0){因为true如果你除以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]);
}
}Run Code Online (Sandbox Code Playgroud)
此外,这里可以使用更简单的方法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);Run Code Online (Sandbox Code Playgroud)