Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将2个javascript变量组合成一个字符串_Javascript_Variables - Fatal编程技术网

如何将2个javascript变量组合成一个字符串

如何将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; 如果要连接两个变量值的字符串

我想加入一个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;

如果要连接两个变量值的字符串表示形式,请使用
+
符号:

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!