Gå til innhold

Javascript : Function som returnerer et array


Anbefalte innlegg

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?

Lenke til kommentar
Videoannonse
Annonse

<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>

 

:)

Lenke til kommentar

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 av torbjørn marø
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...