Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] przypisywanie stałych wartości do różnych zmiennych
Forum PHP.pl > Forum > Przedszkole
stellatus
Chciałbym, przypisywać stałe wartości do różnych zmiennych w ten sposób:
Kod
if (warunek) {
pierwsza zmienna (wybrana spośród wielu róznych) = true
} else {
druga zmienna (wybrana spośród wielu róznych) = false
}


Poniższy kod robi dokładnie to, o co mi chodzi, ale dużo jest w nim powtórek. Czy da się go zatem jeszcze jakoś uprościć?

Kod
var variable1
var variable2
var variable3
var variable4

var1asg = (x) => {
  variable1 = x
}
var2asg = (x) => {
  variable2 = x
}
var3asg = (x) => {
  variable3 = x
}
var4asg = (x) => {
  variable4 = x
}

foo = (asg1, asg2) => {
1===1 ? asg1(true) : asg2(false)
}

foo(var3asg,var4asg)
console.log(variable3, variable4)


Próbowałem tak:

Kod
var variable1
var variable2
var variable3
var variable4

foo = (x) => {
1===1 ? x=true : x=false
  console.log('local value: ' + x)
}

foo(variable1)
console.log('global value: ' + variable1)


ale wartość x nie przechodzi do global. Nie wiem co zrobić, żeby przeszła. To nie działa:
Kod
var variable1

foo = (x) => {
1===1 ? window.x=true : window.x=false
  console.log('local value: ' + x)
}

foo(variable1)
console.log('global value: ' + variable1)


i to też:

Kod
var variable1

foo = (x) => {
  if (1===1) {
    x = true
    x.window = x
  } else {
    x = false
    x.window = x
  }
  console.log(x)
}

foo(variable1)
console.log(variable1)
trueblue
Może napisz jaki efekt chcesz osiągnąć.
stellatus
Właściwie to chcę, żeby ta wartość x przeszła do global:
Kod
var variable1

foo = (x) => {
  if (1===1) {
    x = true
    x.window = x
  } else {
    x = false
    x.window = x
  }
  console.log(x)
}

foo(variable1)
console.log(variable1)


W zasięgu lokalnym variable1 === true. Chcę żeby to true było też globalną wartością variable1.
nospor
Kod
foo = (x) => {
  if (1===1) {
    x = true
    x.window = x
  } else {
    x = false
    x.window = x
  }
  console.log(x)
return x;
}

variable1 = foo(variable1);
console.log(variable1);
trueblue
A może tak?

  1. var variables= {
  2. variable1:null,
  3. variable2:null,
  4. variable3:null,
  5. variable4:null
  6. };
  7.  
  8.  
  9. foo = (x) => {
  10. 1===1 ? variables[x]=true : variables[x]=false
  11. console.log('local value: ' + variables[x])
  12. }
  13.  
  14. foo('variable1');
  15. console.log('global value: ' + variables['variable1']);
stellatus
Bardzo dziękuję. Wypróbuję w projekcie i dam znać.

Niestety ta część mojego projektu musi jeszcze trochę poczekać, ale pamiętam o temacie i w swoim czasie na pewno się odezwę. Na 99% to co proponujecie jest tym czego szukam.

Dzięki jeszcze raz za pomoc. Dla mnie temat jest zamknięty. Problem rozwiązałem w kompletnie inny sposób, ale mam nadzieję, że ten wątek może komuś innemu się przyda.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.