Foros del Web » Programando para Internet » Javascript »

Bucles personalizados en javascript?

Estas en el tema de Bucles personalizados en javascript? en el foro de Javascript en Foros del Web. Se que por ahi es una locura pero tengo el siguiente metodo foreach @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function foreach ( obj , ...
  #1 (permalink)  
Antiguo 08/11/2010, 16:09
 
Fecha de Ingreso: junio-2010
Mensajes: 10
Antigüedad: 13 años, 9 meses
Puntos: 0
Bucles personalizados en javascript?

Se que por ahi es una locura pero tengo el siguiente metodo foreach

Código Javascript:
Ver original
  1. function foreach(obj, code)
  2. {
  3.     if(!obj || !code)
  4.     {
  5.         return 0;
  6.     }
  7.     for(var i = 0; obj[i]; i++)
  8.     {
  9.         code(i, obj[i]);
  10.     }
  11.     return 1;
  12. }

que lo llamo de la siguiente manera:

Código Javascript:
Ver original
  1. juan = {edad:21,nombre:"Juan Manuel"};
  2. foreach(juan, function(key, value)
  3. {
  4.     alert(key + "::" + value);
  5. )}

Hay alguna forma de definir el foreach para que se pueda usar de la siguiente manera?

Código Javascript:
Ver original
  1. foreach(juan,key,value)
  2. {
  3.     alert(key + "::" + value);
  4. }

Como dije seguro es una locura pero tengo mucho codigo y muchos bloques distintos que me quedarian mucho mas prolijos de la segunda manera, muchas gracias querida comunidad de fdw.
  #2 (permalink)  
Antiguo 08/11/2010, 17:03
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Bucles personalizados en javascript?

entonces tendrias que definir otra funcion distinta que lo haga de esa manera. yo te recomiendo que lo dejes como inicialmente lo tenias, es un codigo mas general y amigable. con el paso del callback realizas lo que necesites. a menos que quieras explicar porque deseas hacerlo asi o detallar el asunto.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 09/11/2010, 04:16
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 9 meses
Puntos: 53
Respuesta: Bucles personalizados en javascript?

Por lo que veo estás iterando un objeto, porque no usar el "for .. in .."?? hace exactamente eso que planeas hacer:

Código Javascript:
Ver original
  1. var obj = {nombre:"test",edad:10},
  2.      key;
  3.  
  4. for(key in obj){
  5.     console.debug(key+" : "+obj[key]):
  6. }

Como nota, te comento que este ciclo se recomienda usar solo para objetos, para arreglos es preferible el for tradicional.

Saludos
  #4 (permalink)  
Antiguo 09/11/2010, 10:38
 
Fecha de Ingreso: junio-2010
Mensajes: 10
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Bucles personalizados en javascript?

mm mas lo que intento es que
tengo varias funcionalidades que tienen como argumento un bloque de instrucciones

la idea es si ese bloque hay alguna forma de definirlo para que se puedad escribir fuera del argumento para que quede mas prolijo

como dije por ai es un locura pero donde tengo esto

Código Javascript:
Ver original
  1. llamadaAjax("modulo","clase", ["argumentos"], function(){
  2.     //Aca esta el callback
  3. })

tener algocomo esto

Código Javascript:
Ver original
  1. llamadaAjax("modulo","clase",["argumentos"])
  2. {
  3.     //asi me gustaria el callback
  4. }

No se si es posible pero es para algo mas generico que para el for, es tambien para mis llamadas ajax a php ypara la extension de mis pseudoclases javascript

Saludos!
  #5 (permalink)  
Antiguo 09/11/2010, 11:06
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 9 meses
Puntos: 53
Respuesta: Bucles personalizados en javascript?

No es posible, sintácticamente incorrecto!

Pero, en realidad no hay nada imposible en esta vida y para lograr eso que deseas tendrías que modificar algún engine opensource por ejemplo: V8 (chrome), JavaScriptCore (Safari), SpiderMonkey (firefox), recompilarlo y luego integrarlo a algún navegador, pero... solo funcionaría para ti, así que no creo que te sirva de mucho jejejeje ;) ademas de que no sería cosa fácil.

Saludos
  #6 (permalink)  
Antiguo 09/11/2010, 11:28
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Bucles personalizados en javascript?

aun no lo entiendo... he releido ambos mensajes como tres veces. para saciar mi curiosidad, ¿me lo explican?
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 09/11/2010, 21:32
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Bucles personalizados en javascript?

Yo tampoco entiendo el objetivo. A simple vista parece quererse complicar algo tan sencillo como lo es el callback de toda la vida, que ni siquiera necesita una definición de argumentos para que funcione, pero quizá esa impresión sólo obedece a que no termino de comprender cuál es la finalidad perseguida.
  #8 (permalink)  
Antiguo 10/11/2010, 07:36
 
Fecha de Ingreso: septiembre-2004
Ubicación: La Plata Argentina
Mensajes: 128
Antigüedad: 19 años, 7 meses
Puntos: 9
Respuesta: Bucles personalizados en javascript?

Veo que tienes un problema con la indexacion de los elementos del objeto. obj[0] es undefined.
Entonces, y si entiendo tu duda, prueba :

function foreach(obj, code)
{
if(!obj || !code) return 0;
for(key in obj){
code(key, obj[key]);
}
return 1;
}

juan = {edad:21,nombre:"Juan Manuel"};

function miaccion(key,value)
{
alert(key + "::" + value);
}

foreach(juan,miaccion);
  #9 (permalink)  
Antiguo 16/11/2010, 21:26
 
Fecha de Ingreso: junio-2010
Mensajes: 10
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Bucles personalizados en javascript?

Bueno por lo que veo no es posible.

Para el que no entendio es una simple comodidad.

Es solo crear una function la cual el ultimo parametro de reciba afuera del parentesis para que quede mas prolijo ej

Código Javascript:
Ver original
  1. estructura (argumento, function()
  2. //aca el callback
  3. {
  4.  
  5. });

puedad escribirse

Código Javascript:
Ver original
  1. estructura(argumento)
  2. //callback aca
  3. {
  4. }

Aunque en realidad no es tan complicado como modificar un motor de javascript

podria parsear con php el javascript antes que llegue al cliente detectando y traduciendo esas estructuras.

tambien seria util con un objeto como parametro fuera del parentesis como

Código Javascript:
Ver original
  1. clase_hija = class (clase_padre)
  2. {
  3.     contructor:function()
  4.     {
  5.         this.x = 1;
  6.     },
  7.     getX:function(){return this.x},
  8.     setX:function(x){this.x = x}
  9. }


Ahora estoy metido a full con una orm del trabajo es donde me desenchufe un poco hago el parser en php y lo subo. Saludos.

Etiquetas: foreach, funcion, personalizada
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 14:09.