2011-05-07 91 views
12

我想将js变量和另一个变量一起用于创建另一个变量名称...因此它看起来像;如何将2个javascript变量合并为一个字符串

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

,后来我有

myLatlng1=xxxxx; 
myLatlng2=xxxxx; 
+0

'VAR = 1'不正确。 – 2011-05-07 17:06:57

+0

我不是一个真正的JavaScript家伙,这就是为什么,没有书,这只是因为我正在做一些与谷歌地图api和这个请求者有点js知识,我没有很多:) – 2011-05-07 19:11:37

回答

31

使用the concatenation operator+,而事实上,数字类型将自动转换为字符串:如果你想连接字符串表示

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

现在的问题是,bob1是一个具有价值的变量。代码yu给了我创建一个字符串,我需要bob1作为一个变量名......对不起,我问这个问题有点不对,但是我想甚么可能呢?我知道这可能在PHP中,但它是JavaScript? – 2011-05-07 18:53:01

+0

@Lenny:使用生成的字符串“bob1”作为变量名称是一个完全不同的单独问题。你可以使用'eval'来做这个,但[它通常是皱眉头](http://stackoverflow.com/questions/592862/javascript-variable-variables/592944#592944)。重新考虑代码的某些方面可能是最好的,可能是利用数组。如果您对此有任何疑问,请发布一个新问题,因为它是一件独立的事情。 – 2011-05-07 18:58:01

+0

我正在做的是,我从一个mysql数据库调用位置coridantes,我想在谷歌地图上使用它们,有一个工作,这是做这个分开,并单独创建每个标记,但因为这可能是为了在谷歌地图上的100个标记可能会导致问题,我听说过eval,但我对如何使用它略有困惑,但我会看看是否可以找到一个有用的教程:) – 2011-05-07 19:02:41

3

的两个变量的值,请使用+符号:

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

但是,如果你想保持两个只有一个变量,但仍可以在以后访问它们,你可以把一个对象容器:

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 

的好处是,你可以得到的字符串这两个变量的表示,位以后可以对其进行修改:

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

你(正确地)声明了抽象'addVar',但是在这个例子中你选择使用直接数组访问很差!你也可以使用'var'(这是一个关键字)作为变量名,然后尝试调用'add'(它不存在)。另外,你的'toString()'函数返回的结果比想要的要多得多,因为你遍历了'variables'对象的_all_属性,而不仅仅是那些带有数字键的对象。修复这些错误后,脚本运行并生成''1bob'',而不是''bob1''。同样,你的第二个例子给出了“3tom”而不是“tom1”。 – 2011-05-07 22:44:35

+0

sry,我很着急,纠正了错误 – 2011-05-08 03:30:13

+0

不是全部。 – 2011-05-08 09:45:51

2

您可以使用JavaScript字符串concat()方法,

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

它的语法是:

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

这很酷! – phaberest 2016-09-16 10:37:50

相关问题