Софтуерно Инженерство
Loading...
IvoArsov avatar IvoArsov 44 Точки

03.Three Integers Sum [JavaScript Basics - Lab]

Какво не съм настроил по IDE-то, че тоя код:

function threeIntegerSum(arr) {
    let nums = arr[0].split(' ').map(Number);

    console.log(
        check(nums[0], nums[1], nums[2]) ||
        check(nums[0], nums[2], nums[1]) ||
        check(nums[2], nums[1], nums[0]) ||
        "No"
    );

    function check(num1, num2, num3) {
        if (num1 > num2) {
            [num1, num2] = [num2, num1]
        }
        if (num1 + num2 == num3) {
            return `${num1} + ${num2} = ${num3}`
        }
    }
}

гърми с:

e:\Programs\Pure JS\Exes\03L.js:15
            [num1, num2] = [num2, num1]
            ^

ReferenceError: Invalid left-hand side in assignment
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:139:18)
    at node.js:968:3

Node.js - инсталиран
ЕCMAScript 6 - настроен 

Тагове:
dimitur_botev avatar dimitur_botev 112 Точки

Не мога нещо да намеря условието в джъдж, та ако можеш коледа дай един линк. Иначе тази грешка която ти хвърля не е от IDЕ-то е а invalid left hand  с други думи, кара ти се ,че  не можеш да присвояваш по тоаи начин даденият израз към обкет/променлива. До колкото виждам казваш нещо от сорта на-някъв масив(буквално за интерпретатора е някъв) с елементи а b  = някъв масив с елементи b a , което е грешка, понеже интерпретатора няма идея какви са тия масиви и за това гърми. Това е нещо като грешка в компилация в .NET/JAVA и т.н.Ама ако дадеш линк, към условията на лаба ще съм благодарен понеже нещо не го намирам, а така хем ще ги имам хем ще ти помогна малко повече

0
20/06/2016 16:47:44
IvoArsov avatar IvoArsov 44 Точки

Условието на задачата е в слайда на лекцията, от който преписвам 1:1 и при мен .... гърми. В видеото към лекцията също е решена тая задача и там всичко е наред, пускам в judge - 100 точки.Следователно проблема е в моята щайга. Питам, защото ако не съм настроил нещо като хората, ще ми прави мизерии по нататък.

0
mustafov avatar mustafov 75 Точки

Коя версия на node.js си си изтеглил ?

0
IvoArsov avatar IvoArsov 44 Точки

v.4.4.5-x64 
Тази уж е Current version, която я предлага https://nodejs.org/en/download/.
Не знам, странна работа.

0
mustafov avatar mustafov 75 Точки

Когато влезеш в сайта https://nodejs.org/en/ изтегли отдясно v6.2.2 Current (Latest features) и си го инсталирай.

1
20/06/2016 17:15:18
dimitur_botev avatar dimitur_botev 112 Точки

Прощавай малко не обърнах внимание на скоупа. Както и да е, явно проблема е от node и по някаква причина засича грешка в този израз със масивите. Най-вероятно идва от версията която си сложил, за да има проблем със синтаксиса. Това са предоложения, но може би там се крие пробема, щом тръгва на сървара на judge а при тебе гърми. Виж дали версията ти е най-новата и какво от ECMAScript 6 се подържа. Дано да съм бил поне малко полезен, щото  с тия стандарти е пълна каша

1
20/06/2016 17:22:52
IvoArsov avatar IvoArsov 44 Точки

Тръгна с 6.2.2. 
Благодаря на всички.

0
tihomirj avatar tihomirj 31 Точки

Изтеглил си по-стара версия на node.js, която не поддържа т.нар "Destructuring Assignment Array Matchings". Пробвай да стартираш скрипта в Chrome.  В Chrome би трябвало да върви (ако не ти е много стар браузъра). Обаче в WebStorm не ти върви, защото използваш node v.4.4.5. Пробвай да си инсталираш Node v6.2.2, който поддържа тази благинка на ES6.

0