2015-03-28 4 views
-2

Я пытаюсь создать javascript, который будет считать от 1 до 1000, и нажимать любые кратные 3, 5 в массив, называемый multiples, затем печатать этот массив с помощью console.log(). По какой-то причине мой код не работает. Кто-нибудь знает, почему?Почему мой javascript не работает?

var n; 
var multiples = []; 

for(n = 1; n <= 1000; n += 1) { 
    console.log("Counting"); 
} 

if(n % 3 === 0) { 
    n.push(multiples); 
} 
else { 
} 

if(n % 5 === 0) { 
    n.push(multiples); 
} 
else { 
} 

if(n >= 1000) { 
    console.log(multiples); 
} 
else { 
} 
+0

Теперь, когда я переформатировал ** ваш код **, у вас остались вопросы? –

+0

Благодарим вас за переформатирование. Уже нет. Тревис J решил все мои проблемы. Спасибо, что учил меня. :) – Razzakun

ответ

1

С кодом возникает несколько проблем. Использование {} в вашем блоке обозначает область выполнения кода на каждой итерации. Поэтому, чтобы получить доступ к каждому значению для n, вы должны размещать свои условные заявления внутри {}, а не за их пределами.

Произошла небольшая синтаксическая ошибка в вашем массиве multiples. Чтобы подтолкнуть значение к массиву, вы должны использовать arrayname, за которым следует оператор точки, а затем функция push с аргументом, являющимся значением, нажатым. В терминах кратных и n это означает multiples.push(n).

При использовании блока if(), дополнительно не требуется.

Это, как правило, лучше практика, чтобы включать в себя объявление переменной внутри для петель, а также использовать ++ в отличие от + = 1.

В целом, ваш код должен был бы выглядеть следующим образом

var multiples = []; 

console.log("Counting"); 
for(var n = 1; n <= 1000; n++) { 
    if(n % 3 === 0) { 
     multiples.push(n); 
    } 
    if(n % 5 === 0) { 
     multiples.push(n); 
    } 
} 
console.log(multiples);