SyntaxError: Unexpected end of input

0

Witam,

Chciałbym poćwiczyć funkcję w kompilatorze online ale wygląda na to, że nie bardzo wiem jak wyświetlić wynik funkcji. Mam taki kod:

const numbers = [20, 30, 40];

function someFunc(numbers) {
   
    let sumall = 0;
    
    for (let i = 1; i <= numbers.length; i++) {
       sumall += i;
    
    return sumall;
       
console.log(someFunc());

po naciśnięciu Run dostaję :

node /tmp/ab2DRNbMrp.js
/tmp/ab2DRNbMrp.js:15
console.log(someFunc());
                       ^

SyntaxError: Unexpected end of input
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

Czy mógłby mi ktoś powiedzieć co robię nie tak? Nie wiem czy sama funkcja będzie działała poprawnie ale do tego będę dochodził później.

3

Błąd mówi Ci dokładnie co jest nie tak, tzn Unexpected end of input, tzn że wymagano inputu, ale nastąpił niespodziewany koniec.

Brakuje Ci zamykającej klamerki funkcji, prawdopodobnie przed console.log().

Dodatkowo, powinieneś zrobić console.log(someFunc(numbers));, a nie console.log(someFunc());.

Glt87 napisał(a):

Nie wiem czy sama funkcja będzie działała poprawnie ale do tego będę dochodził później.

Nie będzie, z dwóch powodów. Po pierwsze, iterujesz w pętli po kluczach i, a nie po wartościach numbers[i]; a po drugie iterujesz od 1 do length włącznie, a powinieneś od 0 do length wyłącznie, dlatego że w tablicy która ma np. 3 elementy, klucze to 0, 1, 2, a nie 1, 2, 3.

for (let i = 0; i < numbers.length; i++)
   sumall += numbers[i];
2

Brakuje klamerek zamykających po pętli for, oraz funkcji someFunc i powinieneś jeszcze przekazać tablicę jako argument przy wywołaniu someFunc(numbers);

const numbers = [20, 30, 40];

function someFunc(numbers) {
    let sumall = 0;
    
    for (let i = 1; i <= numbers.length; i++) {
       sumall += numbers[i];
    }
    
    return sumall;
}

console.log(someFunc(numbers));

1 użytkowników online, w tym zalogowanych: 0, gości: 1