Ali obstaja pri javascript kaj podobnega?
 
jj012345 4. dec 2016 09:30:53 Pridružen od:
16. avg 2012
82 objav
13 13 1
#1

V Clipper-ju je obstajal način, ki je bil zelo uporaben in me zanima če je v javascript kaj podobnega.

Če se je pred polje dodalo znak &, se je upoštevala vsebina polja.

Bolj razumljivo bo z primerom

USE TABELA

S tem ukazom se je določilo katero tabelo bomo uporabljali in TABELA je seveda ime tabele. Ker pa smo včasih potrebovali odpret različne tabele, je bilo možno



tabela = 'TABELA_MERKATOR'

USE &tabela



In je uporabljal 'TABELA_MERKATOR'



Ko se je prijavil drug uporabnik



tabela = 'TABELA_TUS'

USE &tabela



Drug primer:

Ker v tabelah ni ponavljajočih pol, se je definiralo BREME01, BREME02…

Seštevanje v zanki je bilo

SUMA = SUMA + BREME&i

i je seveda moral biti besedilo 2 mesta z levo nulo (01,02…).


všeč(0) ni všeč(0) spam(0)
 
Vini 4. dec 2016 12:28:40 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#2

Lažje bo, če boš povedal dejansko težavo. Javascript ne pozna "USE tabela", kot so to imeli xBase programski jeziki. Razumem, da bi do nečesa rad dostopal dinamično, ampak do česa?


všeč(2) ni všeč(0) spam(0)
 
jj012345 4. dec 2016 16:52:27 Pridružen od:
16. avg 2012
82 objav
13 13 1
#3

Namesto tega:

var data = google.visualization.arrayToDataTable([

['Year', 'Sales', 'Expenses'],

['2004', 1000, 400],

['2005', 1170, 460],

['2006', 660, 1120],

['2007', 1030, 540]

]);



to:


var polje = "['Year', 'Sales', 'Expenses'],

['2004', 1000, 400],

['2005', 1170, 460],

['2006', 660, 1120],

['2007', 1030, 540]";



var data = google.visualization.arrayToDataTable([&polje]);


všeč(0) ni všeč(0) spam(0)
 
jj012345 4. dec 2016 18:52:29 Pridružen od:
16. avg 2012
82 objav
13 13 1
#4

Bol vsakdanji primer


  polje = "<";
for (var i = 1; i &polje n; i++)

da se "od zunaj" krmili for zanka
všeč(0) ni všeč(0) spam(0)
 
spicey 4. dec 2016 20:56:42 Pridružen od:
2. avg 2007
70 objav
87 3 3
#5

Samo ta & vrzi ven...

Saj mogoce nimam pojma, ampak to jaz razumem kot: ali ima javascript spremenljivke?


všeč(1) ni všeč(0) spam(0)
 
Spartacus 4. dec 2016 21:25:57 Pridružen od:
23. dec 2007
642 objav
828 38 4
#6

Tudi jst malenkost tavam v temi, kakšno je sploh vprašanje.



Ampak, če pogledam prvi primer:




  1. Ti moraš poskrbet, da dobiš 2d tabelo, torej:


var polje = [['Year', 'Sales', 'Expenses'],
['2004', 1000, 400],
['2005', 1170, 460],
['2006', 660, 1120],
['2007', 1030, 540]];


  1. potem to 2d polje samo pljuneš kot parameter v funkcijo:


var data = google.visualization.arrayToDataTable(polje);

Kar se pa tiče drugega primera: včasih bi bile res mokre sanje, če bi lahko operator dal v spremenljivko in kontroliral for zanko takole.



Ampak ne gre.



... če vsaj približno razumem dilemo ...


všeč(1) ni všeč(0) spam(0)
 
Vini 4. dec 2016 22:43:02 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#7

Macro operator iz Clipperja bi v Javascriptu lahko nadomestil z uporabo eval(), ampak je bila to že v Clipperju zelo zelo slaba praksa, pa v Javascriptu ni nič boljša. :)



Macro operator se je v Clipper verziji 5 zelo lepo nadomestil z uporabo code blocks, v Javascriptu bi pa lahko večino tega, kar ti pričakuješ, rešil z uporabo anoymous function, tvoj primer zanke, recimo, takole:


var primerjaj = function(a,b) { return a < b; };
for (var i = 1; primerjaj(i, n); i++) {
// do whatever
}
všeč(1) ni všeč(0) spam(0)
 
jj012345 5. dec 2016 10:47:33 Pridružen od:
16. avg 2012
82 objav
13 13 1
#8

Poskusil sem sledeče:


<html>
<head>
<script type="text/javascript">
var primerjaj = function(a) { return "i < 3;" };
for (var i = 1; primerjaj(i); i++) {
alert(i);
}
</script>
</head>
<body>
</body>
</html>

Deluje, vendar se je zanka izvajala do neskončnosti, se pravi, da ni prenesel vsebine v return, oziroma se ni upoštevala.



Pravilno pa deluje sledeče:


<html>
<head>
<script type="text/javascript">
var primerjaj = function(a) {
if (a < 3) {
return true;
}
else {
return false;
}
};
for (var i = 1; primerjaj(i); i++) {
alert(i);
}
</script>
</head>
<body>
</body>
</html>

Vini-jev predlog je tisto kar sem iskl.



Vhala vsem za pomoč.


všeč(0) ni všeč(0) spam(0)
 
Vini 5. dec 2016 10:55:38 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#9

Seveda se je izvajala do neskončnosti. :)



"i < 3;" je tipa string in string s to vsebino je v Javascriptu enak logičnemu true. Zakaj si zadevo dal v narekovaje? Samo umakni narekovaje, pa bo delovalo. Ni potrebe po tistem dolgem ifu.



Tole:


return a < 3;

je povsem enako kot:


if (a < 3) {
return true;
}
else {
return false;
}

le slednje je mnogo daljše in bolj nepregledno :)


všeč(3) ni všeč(0) spam(0)
 
jj012345 5. dec 2016 11:08:00 Pridružen od:
16. avg 2012
82 objav
13 13 1
#10

Res je (testirano). Napačno sem razmišljal, da je potrebno prenesti del ukaza...


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se