Foros del Web » Programando para Internet » Javascript »

Crear varias variables desde una

Estas en el tema de Crear varias variables desde una en el foro de Javascript en Foros del Web. Buenos dias amigos amdo buscando la manera de conseguir obtener 12 variables desde una, dejenme explicarme mejor.. por ejemplo tengo este ejemplo. var plaza1 = ...
  #1 (permalink)  
Antiguo 19/11/2010, 10:18
 
Fecha de Ingreso: septiembre-2009
Mensajes: 30
Antigüedad: 14 años, 7 meses
Puntos: 1
Pregunta Crear varias variables desde una

Buenos dias amigos amdo buscando la manera de conseguir obtener 12 variables
desde una, dejenme explicarme mejor..

por ejemplo tengo este ejemplo.


var plaza1 = 'cord1=2; cord2=1;cord3=6;cord4=1;cord5=1;cord6=1;cord7=1;co rd8=1;cord9=5;cord10=1;cord11=3;cord12=6;';

como hago para obtener de esas variable plaza1 convertir cada cord en una variable

esto es para dibujar un mini mundo con cordenadas

por favor espero me entiendan. o si existe algun metodo distinto de hacer esto

diganme soy todo oidos

gracias de antemanos
  #2 (permalink)  
Antiguo 19/11/2010, 12:59
 
Fecha de Ingreso: septiembre-2004
Ubicación: La Plata Argentina
Mensajes: 128
Antigüedad: 19 años, 7 meses
Puntos: 9
Respuesta: Crear varias variables desde una

Una forma seria con el metodo eval


<html>
<head>

<script>
var plaza1 = 'cord1=2; cord2=1;cord3=6;cord4=1;cord5=1;cord6=1;cord7=1;co rd8=1;cord9=5;cord10=1;cord11=3;cord12=6;';
var aPlaza1 = plaza1.split(";");
for(var i=0;i<aPlaza1.length-1;i++){
eval(aPlaza1[i]);
}
alert(cord10);
</script>

</head>

</html>

saludos
  #3 (permalink)  
Antiguo 19/11/2010, 13:02
 
Fecha de Ingreso: septiembre-2004
Ubicación: La Plata Argentina
Mensajes: 128
Antigüedad: 19 años, 7 meses
Puntos: 9
Respuesta: Crear varias variables desde una

No hace falta procesar una variable por vez. Esto tambien anda :

Cita:
<html>
<head>

<script>
var plaza1 = 'cord1=2; cord2=1;cord3=6;cord4=1;cord5=1;cord6=1;cord7=1;co rd8=1;cord9=5;cord10=1;cord11=3;cord12=6;';
eval(plaza1);
alert(cord10);
</script>

</head>

</html>
  #4 (permalink)  
Antiguo 19/11/2010, 13:27
 
Fecha de Ingreso: septiembre-2009
Mensajes: 30
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Crear varias variables desde una

lo que tambien sucede es que la variable plaza la saco desde
una resquest de ajax.

no importa eso?

osea el resusltado ajax me da esa variable con esos valores.

y necesito convertir las 12 variables :/ espero me entiendan
  #5 (permalink)  
Antiguo 19/11/2010, 14:48
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: Crear varias variables desde una

Suponiendo que esos valores no van a ser modificados por el usuario en ningún momento, se podría usar eval (no se me ocurre ningún inconveniente así a ojo). Si no, no te recomiendo usar eval. Podrías usar algo así:
Código Javascript:
Ver original
  1. String.prototype.noEspacios = function(){ return this.replace(/\s{1}/g, ''); }
  2. var plaza1 = 'cord1=2; cord2=1;cord3=6;cord4=1;cord5=1;cord6=1;cord7=1;co rd8=1;cord9=5;cord10=1;cord11=3;cord12=6';
  3. var stringToVariable = function(str){
  4.  var variables=str.split(';'), arr=[];
  5.  for(i=0;act=variables[i];i++){
  6.   arr.push(act.split('=')[0]);
  7.   arr.push(act.split('=')[1]);
  8.  }
  9.  for(i=0;act=arr[i];i+=2){
  10.   window[act.noEspacios()]=arr[i+1];
  11.  }
  12. }
  13. stringToVariable(plaza1);
  14. for(i=1;i<13;i++){
  15.  alert(window['cord'+i]);
  16. }
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #6 (permalink)  
Antiguo 19/11/2010, 17:50
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: Crear varias variables desde una

aunque eval seria util -en el sentido que requiere menos codigo y un resultado mas rapido- aun asi yo lo evitaria mientras sea posible. optaria mejor por una solucion como la que propone _cronos, lo unico que lo haria un poco mas parecido al array $_GET/$_POST de php.

Código:
String.prototype.query = function(split, beforeSplit){
var split = split || [/&/, /=/], query = this, queryObj = {};
if(split.constructor != Array || split.length != 2)throw new TypeError('Excepted type of argument not valid or argument lenght size not allowed.');
if(beforeSplit)query = query.replace(beforeSplit, '');
query = query.split(split[0]);
	while(query.length){
	var pair = query.shift().split(split[1]);
		if(pair[0] in queryObj){
		if(queryObj[pair[0]].constructor != Array)queryObj[pair[0]] = new Array(queryObj[pair[0]]);
		queryObj[pair[0]].push(decodeURIComponent(pair[1]));
		}
		else queryObj[pair[0]] = (pair[1])? decodeURIComponent(pair[1]): undefined;
	}
return queryObj;
}
u otra alternativa aun mejor seria json. el servidor te devuelve el contenido en formato json y luego lo pasas por JSON.parse.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 19/11/2010, 18:03
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: Crear varias variables desde una

No entiendo nada, ¿alguna pista? xD
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #8 (permalink)  
Antiguo 19/11/2010, 18:16
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: Crear varias variables desde una

¿que no entendistes?
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 20/11/2010, 14:54
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Crear varias variables desde una

zerokilled, he hecho una "adaptación" de tu propuesta
Cita:
var steps = [];
var cache = {
append: function(item){
return steps.push(item);
}}

String.prototype.query = function(indice){
query = this.split(';');
for(var i = 0; i < query.length; i++){
cache.append({query[i].split('=')[0] : query[i].split('=')[1]});
}
return steps[0][indice];
}

var variables = 'cord1=7;cord2=1;cord3=6;cord4=1;cord5=1;cord6=1;c ord7=1;cord8=1;cord9=5;cord10=1;cord11=3;cord12=6' ;
alert(variables.query('cord3'));
el problema está en que siempre obtengo el mismo error, haga lo que haga. el error está en el indice de los elementos del objeto, me dice "missing : after property id". serías tan amable de decir cual es el problema??. he usado toString(), eval(), lo he entrecomillado, .... y no hay manera. me tiene desesperada

gracias
  #10 (permalink)  
Antiguo 20/11/2010, 15: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: Crear varias variables desde una

fijate que estas creando un objeto literal en la invocacion de append donde el token -o nombre de la propiedad- tu intentas que sea el resultado de una expresion. pero javascript no lo interpreta de esa forma. en objetos literales el token tiene que ser estrictamente caracteres validos para identificadores, o en caso de tener caracteres invalidos entre comillar el token. para que el token sea el resultado de una expresion tienes que crear primero el objeto y luego utilizar la sintaxis de corchete.
Código:
var obj = {};
obj[expresion] = valor;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 20/11/2010 a las 15:36
  #11 (permalink)  
Antiguo 20/11/2010, 16:20
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Crear varias variables desde una

a bien, entonces entiendo que en vez de usar un literal uso un constructor

muchas gracias

edito: otra pregunta, y prometo que es la última, en este tema . hay mucha diferencia entre tu script y el mio?? me refiero a nivel de eficiencia

Última edición por IsaBelM; 20/11/2010 a las 16:32

Etiquetas: variables
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 16:57.