如何使用Javascript或jQuery将两个字符串连接成一个变量名?

如何使用Javascript或jQuery将两个字符串连接成一个变量名?,javascript,jquery,Javascript,Jquery,以前有人问过这个问题,我想创建一个(可能)更简单的版本,让其他人(可能)更容易理解 我想做的是将一个字符串和变量中的数据(字符串)组合起来,创建一个变量名。我想它会被称为动态变量 在本例中,我想向div.添加一个类和文本 <div class="time fa"></div> 因此,我想将单词time添加到名为type的变量的数据中,以从timetrain或timebus输出数据 $('.time').text('Travel by bus will take |'ti

以前有人问过这个问题,我想创建一个(可能)更简单的版本,让其他人(可能)更容易理解

我想做的是将一个字符串和变量中的数据(字符串)组合起来,创建一个变量名。我想它会被称为动态变量

在本例中,我想向div.添加一个类和文本

<div class="time fa"></div>
因此,我想将单词
time
添加到名为
type
的变量的数据中,以从
timetrain
timebus
输出数据

$('.time').text('Travel by bus will take |'time'|+|type| minutes');
$('.time').addClass(|'icon'|+|type|));

我想这个问题的另一种表述方式是“如何将变量的数据与字符串相结合,以使用Javascript从第三个变量获取数据?”

使用Eval的解决方案

eval('string' + variableName)
应用于提供的代码

var-timetain=10;
var-timebus=20;
var icontrain=‘fa列车’;
var iconbus=‘fa总线’;
变量类型='总线';//这个数据(字符串)来自一个json文件,它可以是train或bus
$('.time').text('乘公共汽车旅行需要'+eval('time'+type)+'minutes');
$('.time').addClass(eval('icon'+type))

为什么不制作一个时间关联数组

time = {'bus': 20, 'train': 10}
等等。?而不仅仅是使用
time[type]
访问它。这比您想做的要安全得多(您必须依赖eval),这似乎有点过头了。

使用ES6:
var time=“30”,
typesArr=[“公共汽车”、“火车”、“脚”],
type=typesArr[Math.random()*typesArr.length | 0];//拾取随机数组项
//将值与字符串混合:

write(`travelby${type}将花费${time}分钟`)Nicht so@hasting,lieber或entlich machen

不使用Eval的更好解决方案: 现在大多数编程语言都支持一种数据结构来“分组”属于一起的变量。这叫做物体。我想不出在多变量上使用对象有什么缺点。 这种方法甚至比您尝试使用
eval()
时快了一点点

var configByType={
“火车”:{
标签:“火车”,
时间:10,,
图标:“fa列车”
},
“公共汽车”:{
标签:“巴士”,
时间:20,,
图标:“fa总线”
}
}
功能行程(类型){
//因为创建和添加新的“span”更简单
//而不是在“.time.fa”上检查要删除的wich类`
var$span=$('.time').html('.children();
if(输入configByType){
让config=configByType[type];
$span.addClass(配置图标)
.text('通过'+config.label+'旅行将花费'+config.time+'分钟')
}否则{
$span.text('不支持的类型:'+类型);
}
}
$(“#更新”)。单击(函数(){
变量类型=[“汽车”、“公共汽车”、“火车”、“飞机”];
var randomType=types[Math.floor(Math.random()*types.length)];
旅行(随机类型)
});
旅行(“公共汽车”)



javascript中确实没有“关联数组”的概念。。。最好叫它什么…一个物体literal@charlietfl作为一种不懂语言的描述,它完美地描述了它lol-@vsync像jQuery这样愚蠢的家伙和那些经常碰头的真正愚蠢的家伙(我)几乎无法使用/理解它或将它与javascript区分开来。我还应该提到,我的术语和我对所有与代码相关的事情以及任何需要三年级以上教育才能理解的事情的基本误解一样糟糕,包括(但不限于)系鞋带。(我告诉人们我很喜欢维可牢尼龙粘扣的声音,但在你和我之间,这是个谎言)@vsync这么说,我感谢你花时间回答,并为我花时间阅读/理解/投票致歉:)我只希望我的回答对你的情况真的有帮助
time = {'bus': 20, 'train': 10}