Foros del Web » Programando para Internet » Javascript »

Return Array para usarlo en otra funcion

Estas en el tema de Return Array para usarlo en otra funcion en el foro de Javascript en Foros del Web. Hola a todos... Necesito porfa que me ayuden a encontrar el error... tengo una funcion que crea un array a partir de los nodos de ...
  #1 (permalink)  
Antiguo 13/06/2012, 11:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 105
Antigüedad: 13 años
Puntos: 3
Pregunta Return Array para usarlo en otra funcion

Hola a todos...

Necesito porfa que me ayuden a encontrar el error... tengo una funcion que crea un array a partir de los nodos de un div, el array es retornado y necesito usarlo en otra funcion.... pero no funciona!!

aqui el codigo...


Funcion que crea el array con los id de los divs nietos de un div abuelo:

Código Javascript:
Ver original
  1. function SetOfReceivers()
  2. {
  3.     var setofreceivers = new Array();
  4.     var divparent = document.getElementById("listofreceivers");
  5.     var tamano = divparent.childNodes.length;
  6.     for(i=0; i <= tamano;i++){
  7.         var children = divparent.childNodes[i];
  8.         var grandchildren = children.childNodes[1].getAttribute("id");
  9.         setofreceivers[i] = grandchildren;
  10.        
  11.     }
  12.    
  13.     return setofreceivers;
  14. }

Otra funcion que captura el array para usarlo... aqui es un simple alert:

Código Javascript:
Ver original
  1. function anotherFunction(){
  2.          var receiverusers = new Array();
  3.     receiverusers = SetOfReceivers();
  4.    
  5.     for (var i = 0; i <= receiverusers.length;i++){
  6.         alert(receiverusers[i]);
  7.     }
  8. }

Pero el alert no funcionaaa!!

La funcion de los divs nietos esta probada, si le pongo alert al bucle for me retorna los ids que necesito...

EL PROBLEMA ES USAR ESE ARRAY RETORNADO EN OTRA FUNCION.... NO EXISTE O NO LO DEVUELVE O ES NULO O YA NO SE...
  #2 (permalink)  
Antiguo 13/06/2012, 16:03
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Return Array para usarlo en otra funcion

la función que has de invocar es anotherFunction(). en caso que lo estés haciendo, asegurate que se está llenando el array. justamente antes del return añade
Cita:
alert(setofreceivers)
o
console.log(setofreceivers)
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 13/06/2012, 16:08
 
Fecha de Ingreso: mayo-2011
Mensajes: 105
Antigüedad: 13 años
Puntos: 3
Respuesta: Return Array para usarlo en otra funcion

ya lo hice pero aun asi no va....
  #4 (permalink)  
Antiguo 13/06/2012, 16:35
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Return Array para usarlo en otra funcion

el único error que veo es que estás usando el operador (<=) lo que hará que el último elemento se indefinido. has de usar (>)

prueba con esto
Cita:
function SetOfReceivers()
{
var setofreceivers = new Array();
setofreceivers[0] = 'a';
setofreceivers[1] = 'b';
setofreceivers[2] = 'c';

return setofreceivers;
}


function anotherFunction(){
var receiverusers = new Array();
receiverusers = SetOfReceivers();

for (var i = 0; i < receiverusers.length;i++){
console.log(receiverusers[i]);
}
}

window.onload = anotherFunction;
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 13/06/2012, 20:21
 
Fecha de Ingreso: mayo-2011
Mensajes: 105
Antigüedad: 13 años
Puntos: 3
Respuesta: Return Array para usarlo en otra funcion

decidi a armarlo todo en una sola funcion y descubri una cosa: el arreglo setofreceivers "vive" por decirlo asi, solo en el ciclo for, al hacer un alert afuera no hace nada pero si hago el alert dentro, entonces muere...

es como si ya no tuviera elementos, no es un objeto que persista---
se me ocurre como si fuera algo con guardar el valor del div en la posicion... pero he leido y dice que javscript guarda objetos.... bueno en si yo no quiero guardar un objeto sino un atributo....

veran, la aplicacion lo que hace es enviar mensajes, los mensajes se pueden enviar a multiples destinatarios, entonces el usuario escribe el nombre en un text y la aplicacion busca el usuario en la BD una vez escogido se agrega como un div id = el id del usuario

lo que necesito es que esos ids se guarden en un arreglo para luego serializaro y enviarlo por post a guardar.... me entienden????
  #6 (permalink)  
Antiguo 14/06/2012, 05:43
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Return Array para usarlo en otra funcion

no has respondido ha si te funcionó el código que te dejé. como la respuesta es sí, qué conclusión sacas??
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #7 (permalink)  
Antiguo 16/06/2012, 20:46
 
Fecha de Ingreso: mayo-2011
Mensajes: 105
Antigüedad: 13 años
Puntos: 3
Respuesta: Return Array para usarlo en otra funcion

No funciona. Tengo el codigo en un js aparte. La solucion fue: declarar el array global para que lo pudiera manipular en todo el documento sin necesidad de declararlo en una sola funcion, el array "vivirá" para todas las funciones del documento js. Gracias!!!
  #8 (permalink)  
Antiguo 17/06/2012, 12:50
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Return Array para usarlo en otra funcion

Cita:
Iniciado por deywibkiss Ver Mensaje
No funciona.
no te has molestado en probarlo


Tengo el codigo en un js aparte.
es indiferente


La solucion fue: declarar el array global para que lo pudiera manipular en todo el documento sin necesidad de declararlo en una sola funcion, el array "vivirá" para todas las funciones del documento js. Gracias!!!
cita de tu primer post
Cita:
Iniciado por deywibkiss Ver Mensaje
Hola a todos...

Necesito porfa que me ayuden a encontrar el error... tengo una funcion que crea un array a partir de los nodos de un div, el array es retornado y necesito usarlo en otra funcion.... pero no funciona!!

.........

EL PROBLEMA ES USAR ESE ARRAY RETORNADO EN OTRA FUNCION.... NO EXISTE O NO LO DEVUELVE O ES NULO O YA NO SE...
-2

pd.- antes que alguien lo diga este formato de respuesta empecé a usarlo hace mucho
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Última edición por IsaBelM; 17/06/2012 a las 12:55
  #9 (permalink)  
Antiguo 17/06/2012, 17:20
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 6 meses
Puntos: 317
Respuesta: Return Array para usarlo en otra funcion

Cita:
Iniciado por IsaBelM
pd.- antes que alguien lo diga este formato de respuesta empecé a usarlo hace mucho
¿Qué te preocupa? A estas alturas ya todos tenemos un indulto secular*.


Es una pena que deywibkiss no haya puesto un ejemplo completo, para probar. Yo no le respondí porque no tenía ganas de meterme a escribir los div's.
( De un tiempo para acá, ya no me ocupo mucho de los que no ponen el código, o los que pretenden soluciones con jquery y similares, o los que no demuestran algún conocimiento como para sospechar que me van a entender la respuesta. )

Volviendo al asunto; tampoco lo resolvió mal, yo hubiese puesto una variable global de entrada, nunca me gustó demasiado usar el return. Supongo que son "estilos".

La línea que me daba cierto escozor era

Código:
var receiverusers = new Array();
receiverusers = SetOfReceivers();
Pensé que había que concatenar, o quizá ni crear el new Array() sino simplemente asignarlo como valor de variable. En fin, por más que me desasnes explicando por qué le erro, me voy a quedar con las ganas de probarlo.
Sí, por supuesto, jamás voy a tipearme el ejemplo.

Saludos
furoya


* : "Secular", por lo de "siglo".
  #10 (permalink)  
Antiguo 18/06/2012, 04:44
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Return Array para usarlo en otra funcion

Cita:
Iniciado por furoya Ver Mensaje
La línea que me daba cierto escozor era

Código:
var receiverusers = new Array();
receiverusers = SetOfReceivers();
Pensé que había que concatenar, o quizá ni crear el new Array() sino simplemente asignarlo como valor de variable. En fin, por más que me desasnes explicando por qué le erro, me voy a quedar con las ganas de probarlo.
Sí, por supuesto, jamás voy a tipearme el ejemplo.

Saludos
furoya


* : "Secular", por lo de "siglo".
me jugó una mala pasada el copy/paste. no hace falta usar el constructor ya que se retorna un objeto

Cita:
alert(typeof(SetOfReceivers()));
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #11 (permalink)  
Antiguo 18/06/2012, 06:47
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 6 meses
Puntos: 317
Respuesta: Return Array para usarlo en otra funcion

Código:
¡ typeof() !
¡Otro que no usé nunca! ¿Para qué quiero saber el origen de un array que hago yo?.
De todas formas hay que conocerlos, porque hay gente que programa en serio, y no hace chapucerías como un servidor.

Una duda que me da vueltas desde hace rato y nunca me animé a preguntar : ¿qué tienes contra las etiquetas [code] ...?
Siempre las reemplazas por [quote].

Y yo me pongo a buscar por todo el tema para saber de dónde sacaste la cita.
  #12 (permalink)  
Antiguo 18/06/2012, 07:54
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Return Array para usarlo en otra funcion

Cita:
Iniciado por furoya Ver Mensaje
Código:
¡ typeof() !
¡Otro que no usé nunca! ¿Para qué quiero saber el origen de un array que hago yo?.
De todas formas hay que conocerlos, porque hay gente que programa en serio, y no hace chapucerías como un servidor.
como ejemplo un botón



Una duda que me da vueltas desde hace rato y nunca me animé a preguntar : ¿qué tienes contra las etiquetas [code] ...?
Siempre las reemplazas por [quote].

Y yo me pongo a buscar por todo el tema para saber de dónde sacaste la cita.
soy demasiado perezosa. la etiqueta <quote> es la que está mas a mano. por que casi siempre publico desde respuesta rápida
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:16.