Parashurama Skrevet 16. september 2011 Skrevet 16. september 2011 Hei. Jeg vil lage en generell function som returnerer strøm og effekttap i en resistor når spenning og motstand er definert. Problemet mitt er at jeg får ikke lest arrayet fra functionen. Her er koden jeg har: Javascript coden: function calc_r(v,r) { var testarray = new Array(2); var i = v/r; testarray[0] = i; testarray[1] = i*i*r; return testarray; } Min testkode for å få frem arrayet : var temp = new array(); temp = calc_r(2,3); alert(temp[1]); Når jeg kjører dette skjer det ingen ting. (ikke noe alert vindu i det hele tatt) Returnerer jeg en enkelt verdi i steden for et array viser "alert" riktig verdi. Noen som ser hva jeg gjør galt?
Thomas. Skrevet 17. september 2011 Skrevet 17. september 2011 <script type="text/javascript"> function calc_r(v,r) { var testarray = new Array(2); var i = v/r; testarray[0] = i; testarray[1] = i*i*r; return testarray; } var ret = calc_r(2,3); var hei = new Array(ret[0], ret[1]); alert('testarray[0]: ' + hei[0] + '\ntestarray[1]: ' + hei[1]); </script>
Parashurama Skrevet 18. september 2011 Forfatter Skrevet 18. september 2011 (endret) Supert! Takk skal du ha! PS: Kan jo bruke "ret" arrayet direkte også. Trenger ikke "hei" for at det skal virke. Jeg må bare i mitt eksempel definere "temp" direkte: var temp = calc_r(2,3); Endret 18. september 2011 av Parashurama
JohndoeMAKT Skrevet 18. september 2011 Skrevet 18. september 2011 Hvis jeg får lov vil jeg gjerne skrive koden litt enklere. I JavaScript trenger du ikke skrive mye av det andre språk krever som "new", array-konstruksjon på forhånd og mer. function calc_r(v, r) { var i = v/r; return [i, i*i*r]; } var ret = calc_r(v, r); alert(ret[1]);
torbjørn marø Skrevet 18. september 2011 Skrevet 18. september 2011 (endret) I coffeescript ville jeg skrevet denne funksjonen slik: calc_r = (v, r) -> i = v/r [i, i*r*r] eventuelt slik: calc_r = (v, r, i = v/r) -> [i, i*r*r] Den siste versjonen genererer følgende JavaScript: var calc_r; calc_r = function(v, r, i) { if (i == null) { i = v / r; } return [i, i * r * r]; }; Når jeg bruker funksjonen i CoffeeScript kan jeg f.eks. gjøre det slik: # aner ikke hva som er fornuftige verdier her v = 3 r = 5 [s, e] = calc_r v, r Dette kalles pattern matching, eller destructuring assignment, og kompileres til følgende JavaScript-kode: var v, r; v = 3; r = 5; _ref = calc_r(v, r), s = _ref[0], e = _ref[1]; Endret 18. september 2011 av torbjørn marø
Parashurama Skrevet 21. september 2011 Forfatter Skrevet 21. september 2011 Takk for tips til hvordan jeg kan skrive koden min enklere!
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå