2011-05-07 10 views
12

Me gustaría unirme a una variable js junto con otra para crear otro nombre de variable ... para que así se vea;Cómo combino 2 variables de JavaScript en una cadena

for (i=1;i<=2;i++){ 
    var marker = new google.maps.Marker({ 
position:"myLatlng"+i, 
map: map, 
title:"title"+i, 
icon: "image"+i 
}); 
} 

y más tarde tengo

myLatlng1=xxxxx; 
myLatlng2=xxxxx; 
+0

'var = 1' es incorrecta. –

+0

No soy realmente un chico de Javascript, por eso, no hay libro, esto es solo porque estoy haciendo algo con google maps api y esto requiere un poco de conocimiento de js que no tengo mucho de :) –

Respuesta

31

Uso the concatenation operator+, y el hecho de que los tipos numéricos se convertirán automáticamente en cadenas:

var a = 1; 
var b = "bob"; 
var c = b + a; 
+0

el El problema ahora es que bob1 es una variable que tiene un valor más adelante. El código que me has dado crea una cadena, necesito que bob1 sea un nombre de variable ..., lo siento, hice la pregunta un poco mal, pero ¿es lo que me gustaría incluso posible? Sé que es posible en PHP pero ¿es javascript? –

+0

@Lenny: Usar la cadena generada "bob1" como nombre de variable es una pregunta completamente diferente y separada. Usted puede hacer esto usando 'eval', pero [generalmente está mal visto] (http://stackoverflow.com/questions/592862/javascript-variable-variables/592944#592944). Podría ser mejor repensar algunos aspectos de tu código, tal vez haciendo uso de matrices. Si tiene alguna pregunta al respecto, publique una nueva pregunta, ya que es una cuestión separada. –

+0

Lo que estoy haciendo es llamar a coridantes de posición desde una base de datos de MySQL y me gustaría usarlos en los mapas de Google, hay una solución alternativa y está haciendo esto separadamente y creando cada marcador por separado, pero dado que esto puede ser por más 100 marcadores en un mapa de google podría causar problemas, he oído hablar de eval pero estoy un poco confundido sobre cómo usarlo, pero voy a echar un vistazo para ver si puedo encontrar un tutorial útil :) –

3

si desea concatenar la representación de cadena de los valores de dos variables, use el signo +:

var var1 = 1; 
var var2 = "bob"; 
var var3 = var2 + var1;//=bob1 

Pero si desea mantener los dos en una sola variable, pero aún así ser capaz de acceder a ellos más adelante, usted podría hacer un contenedor de objetos:

function Container(){ 
    this.variables = []; 
} 
Container.prototype.addVar = function(var){ 
    this.variables.push(var); 
} 
Container.prototype.toString = function(){ 
    var result = ''; 
    for(var i in this.variables) 
     result += this.variables[i]; 
    return result; 
} 

var var1 = 1; 
var var2 = "bob"; 
var container = new Container(); 
container.addVar(var2); 
container.addVar(var1); 
container.toString();// = bob1 

la ventaja es que se puede obtener la cadena la representación de las dos variables, bit puede modificar más adelante:

container.variables[0] = 3; 
container.variables[1] = "tom"; 
container.toString();// = tom3 
+0

Usted (correctamente) declara la abstracción 'addVar', pero luego en el ejemplo elige usar mal el acceso directo a la matriz. También usas 'var' (que es una palabra clave) para nombres de variables, luego intentas llamar' add' (que no existe). Además, su función 'toString()' devuelve mucho más de lo deseado, porque itera sobre _todas las propiedades del objeto 'variables', no solo las que tienen teclas numéricas. Después de corregir estos errores, la secuencia de comandos se ejecuta y produce '" 1bob "', no '" bob1 "'. Del mismo modo, su segundo ejemplo da '' 3tom "', not '" tom1 "'. –

+0

sry, tenía prisa, corrigió los errores –

+0

No todos. –

2

puede utilizar el concat JavaScript String() Método,

var str1 = "Hello "; 
var str2 = "world!"; 
var res = str1.concat(str2); //will return "Hello world!" 

Su sintaxis es:

string.concat(string1, string2, ..., stringX) 
2
var variable = 'variable', 
    another = 'another'; 

['I would', 'like to'].join(' ') + ' a js ' + variable + ' together with ' + another + ' to create ' + [another, ...[variable].concat('name')].join(' ').concat('...'); 
+0

¡Eso fue genial! – phaberest

Cuestiones relacionadas