如何将2个javascript变量组合成一个字符串
我想加入一个js变量和另一个一起创建另一个变量名。。。所以它看起来像如何将2个javascript变量组合成一个字符串,javascript,variables,Javascript,Variables,我想加入一个js变量和另一个一起创建另一个变量名。。。所以它看起来像 for (i=1;i<=2;i++){ var marker = new google.maps.Marker({ position:"myLatlng"+i, map: map, title:"title"+i, icon: "image"+i }); } 使用+,数字类型将自动转换为字符串: var a = 1; var b = "bob"; var c = b + a; 如果要连接两个变量值的字符串
for (i=1;i<=2;i++){
var marker = new google.maps.Marker({
position:"myLatlng"+i,
map: map,
title:"title"+i,
icon: "image"+i
});
}
使用+
,数字类型将自动转换为字符串:
var a = 1;
var b = "bob";
var c = b + a;
如果要连接两个变量值的字符串表示形式,请使用
+
符号:
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
可以使用JavaScript字符串concat()方法 其语法是:
string.concat(string1, string2, ..., stringX)
警告!这不适用于链接 变量变量='变量', 另一个=‘另一个’
['I would', 'like to'].join(' ') + ' a js ' + variable + ' together with ' + another + ' to create ' + [another, ...[variable].concat('name')].join(' ').concat('...');
ES6引入用于连接的模板字符串。模板字符串使用反引号(``),而不是我们习惯于使用常规字符串的单引号或双引号。因此,可以按如下方式编写模板字符串:
// Simple string substitution
let name = "Brendan";
console.log(`Yo, ${name}!`);
// => "Yo, Brendan!"
var a = 10;
var b = 10;
console.log(`JavaScript first appeared ${a+b} years ago. Crazy!`);
//=> JavaScript first appeared 20 years ago. Crazy!
现在的问题是bob1是一个变量,它的值更高。yu给我的代码创建了一个字符串,我需要bob1作为变量名…,对不起,我问的问题有点错,但我想要的是可能的吗?我知道这在php中是可能的,但它是javascript吗?@Lenny:使用生成的字符串“bob1”作为变量名是一个完全不同的问题。您可以使用
eval
执行此操作,但是。最好重新考虑代码的某些方面,也许可以利用数组。如果您对此有任何疑问,请发布一个新问题,因为这是一个单独的问题。我正在做的是,我正在从mysql数据库中调用position coridantes,我想在谷歌地图上使用它们,有一个解决办法,就是分开做,分别创建每个标记,但由于谷歌地图上可能有100多个标记,这可能会导致问题,我听说过eval,但我对如何使用它有点困惑,但是我会看看我是否能找到一个有用的教程:)@Lenny:我在标记方面也遇到过类似的问题。当然,这与这个问题完全无关,但我有兴趣看到你将来发布的关于谷歌地图标记的任何问题。请考虑使用数组:使用JavaScript“关联数组”(对象),可以通过变量本身来检索属性/值。这就是为什么,没有书,这仅仅是因为我正在用google maps api做一些事情,这需要一些js知识,我没有太多:)您(正确地)声明了抽象addVar
,但是在示例中,您选择了使用直接数组访问!您还可以对变量名使用var
(它是一个关键字),然后尝试调用add
(它不存在)。另外,您的toString()
函数返回的值远远超出预期,因为您迭代了变量
对象的所有属性,而不仅仅是那些带有数字键的属性。修复这些错误后,脚本将运行并生成“1bob”
,而不是“bob1”
。类似地,第二个示例给出的是“3tom”
,而不是“tom1”
。我从来不知道concat可以与3+字符串一起使用
['I would', 'like to'].join(' ') + ' a js ' + variable + ' together with ' + another + ' to create ' + [another, ...[variable].concat('name')].join(' ').concat('...');
// Simple string substitution
let name = "Brendan";
console.log(`Yo, ${name}!`);
// => "Yo, Brendan!"
var a = 10;
var b = 10;
console.log(`JavaScript first appeared ${a+b} years ago. Crazy!`);
//=> JavaScript first appeared 20 years ago. Crazy!