Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Помогите с кодом javascript

123456789101112131415161718192021222324252627
 function sum(array) { 
    let sum = 0; 
    for(let x of array) { 
        sum +- x; 
    } 
    return sum; 
} 
sum(primes) 
console.log(sum([1,2,3,4,5])); 
function factorial(n) { 
    let product = 1; 
    while(n > 1) { 
        product = product * n; 
        n--; 
    } 
    return product; 
} 
console.log(factorial(4)) 
function factorial12(n) { 
    let i , product = 1; 
    for(i=2; i <= n; i++){ 
        product *= i; 
    } 
    return product; 
} 
console.log(factorial12(5))
 

я начал изучать javascript по справочнику Дэвида Флэнагана , и столкнулся с проблемой , код выдает ошибку в строке sum(primes)
ReferenceError: primes is not defined
хотя я списал код точно с книги. ChatGpt не помог

Дополнен

если удаляю строчку то еще возникает ошибка for(let x of array) {
^

TypeError: array is not iterable
забыл уточнить

Дополнен

еще дополню что скопировал неправильно , там sum +- x; а надо +=

По дате
По рейтингу
Аватар пользователя
Новичок

Ошибка возникает потому, что ты вызываешь функцию sum с аргументом primes, но переменная primes нигде не объявлена и ей не присвоено никакого значения. Чтобы это исправить, нужно либо создать переменную primes и присвоить ей массив чисел, либо передать массив чисел напрямую в функцию sum.
Далее ошибка "TypeError: array is not iterable" возникала из-за некорректного оператора sum +- x. В JavaScript для сложения с присваиванием используется оператор +=.
А потом let i , product = 1;: В функции factorial12 не нужно было объявлять переменную i отдельно. Достаточно объявить ее внутри цикла for.
Вот пример исправленного кода:

1234567891011121314151617181920212223242526272829
 function sum(array) {  
    let sum = 0;  
    for(let x of array) {  
        sum += x;  
    }  
    return sum;  
}  
 
console.log(sum([2, 3, 5, 7, 11]));  
console.log(sum([1, 2, 3, 4, 5]));   
 
function factorial(n) {  
    let product = 1;  
    while(n > 1) {  
        product = product * n;  
        n--;  
    }  
    return product;  
}  
console.log(factorial(4));  
 
function factorial12(n) {  
    let product = 1;  
    for(let i = 2; i <= n; i++){  
        product *= i;  
    }  
    return product;  
}  
console.log(factorial12(5));  
Аватар пользователя
Оракул

Переменная primes не определена, потому и вторая ошибка лезет, underfined нельзя перебирать, т.к. это не массив

Аватар пользователя
Просветленный

удали эту строку, она не нужна
PS после того как исправлено +=
теперь можно удалить sum(primes)

Аватар пользователя
Просветленный

Ошибка именно в этом: primes is not defined (переводить надо?). Исправь и заработает