Оператор 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]);
}
}
Кроме того, более простой подход здесь может заключаться в использовании 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);