Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/07/2009, 04:06
Avatar de nflamel
nflamel
 
Fecha de Ingreso: agosto-2005
Ubicación: Granada
Mensajes: 41
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: Devolver una función más de un valor

Cita:
Iniciado por Legoltaz Ver Mensaje
Tengo esta duda: ¿Cómo podría hacer para que una función devuelva más de un valor para que los reciba otra función?

He intentado esto, pero no me funciona :

Código JavaScript:
Ver original
  1. function setValues(){
  2. var title = prompt("Title:");
  3. var title2 = prompt("2nd title:");
  4. return [title,title2];
  5. }
  6. var [t,t2] = setValues();
  7. alert("1st title: "+t+";2nd title: "+t2);

También he probado de esta forma, pero sólo me devuelve el segundo valor (title2) y el primero me lo asigna como undefined:

Código JavaScript:
Ver original
  1. function setValues(){
  2. var title = prompt("Title:");
  3. var title2 = prompt("2nd title:");
  4. return title,title2;
  5. }
  6. var t,t2 = setValues();
  7. alert("1st title: "+t+";2nd title: "+t2);
Javascript no soporta devolver varios argumentos como por ejemplo Ruby. Tienes que "currartelo" para hacerlo a tu manera.
En el primer caso deberías hacer esto

Código JavaScript:
Ver original
  1. function setValues(){
  2.   var title = prompt("Title:");
  3.   var title2 = prompt("2nd title:");
  4.   return [title,title2];
  5. }
  6. var t = setValues();
  7. alert("1st title: "+t[0]+";2nd title: "+t[1]);

Otra cosa que puedes hacer es devolver un objeto javascript

Código JavaScript:
Ver original
  1. function setValues(){
  2.   var title = prompt("Title:");
  3.   var title2 = prompt("2nd title:");
  4.   var devolver = {
  5.     title: title,
  6.     title2: title
  7.   }
  8.   return devolver;
  9. }
  10. var titulos = setValues();
  11. alert("1st title: "+titulos.title+";2nd title: "+titulos.title2);

Saludos!