JavaScript Variables


#1

Здравейте хора, имам проблем с променливите в JS. Инфо след снимката.


Значи декларирам празна променлива и след това в цикъл се опитвам да и задам стойност. Очаквам тази стойност успешно да бъде взета, но всъщност не е и променлимата още си е празна … Защо става така ? Някой знае ли как да го оправя ?

Еdit: Зелените са полетата в който се опитвам да задам стойност, а червените са променливите, които са празни.

Edit2: Аз съм от Java кохорта сори ако въпроса е нелеп Xaxa ^^


#2

Така кода който си показал, изваден от цялостния контекст, е трудно да се прецени защо не ти присвоява стойност на променливата, но ако работиш с javascript масив и искаш просто да провериш това дали се съдържа в него определен елемент и на тази база да си пишеш логиката бих те посъветвал да ползваш метода includes на масивите https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
Той ще ти върне булева на базата на това дали даден елемент съществува в масива или не.


#3

То това е, променливата няма друга стойност, декларирам я и после се опитвам да и дам стойност, все едно в Java декларираш променлива преди цикъл и след цикъла като свърши тя е променена. В случая дори тук да бях написал let btn = buttoLike; и след това да пробвам да я променя с if условие, то пак ще ми връща 100/100 buttonLike. Мисълта ми е следната, как да връщам един скоуп нагоре, примерно в момента let btn е в блок1 scope, но искам да я задам/променя в блок2 scope, как да я върна на scope блок1?


#4

Не съм сигурен дали ще стане с includes, защото това е масив от обекти, а аз проверявам стойност на юзърИД от всеки обект. ( Извинявам се ако не съм прав хаха, не разбирам много от js )


#5

Мисля че те разбрах. В момента така както въртиш цикъл с $.each не можеш да излезнеш от него с return. Може да направиш следното нещо да дадеш първоначална стойност на бутона (1 от двете възможни) и после само с 1 иф в цикъла евентуално да я подмениш.


#6

Ами аз снощи пробвах, но не стана смисъл, бутона не подменяше стойноста си дори, когато if-a се изпълни…
Ще го разцъкам днес пак и ще видя какво ще стане. Хаха. Благодаря ти все пак.


#7

ако искаш изпрати кода който имаш с някакви мокнати данни и ще го погледна :slight_smile:


#8

Споко, оправих се, беше свързано с ===, защото той сравнява и по вид на данните също, а като го взимах с jQuery бях изключил, че то взима стойност от таг и там е стринг пък аз сравнявам с инт и така