我想知道你是否可以使用字符串连接来调用变量,甚至是名称变量。我试图根据函数中传递的参数输出不同的文本。
function myFunction(direction) {
var previousElement = "Previous Element";
var nextElement = "Next Element";
console.log(direction+Element);
//I want it to print "Previous Element" or "Next Element" depending on what the direction is.
}
myFunction('previous');
答案 0 :(得分:2)
最安全的方法是将路线包装为一个物体:
function myFunction(direction) {
var element = {
"previous": "Previous Element",
"next": "Next Element"
};
return direction in element ? element[direction] : false;
}
myFunction('previous');
//I want it to print "Previous Element" or "Next Element" depending on what the direction is.
答案 1 :(得分:1)
最好使用对象来保存它,并使用变量以括号表示法访问属性。
var msgs = {
"previous" : "Previous Element",
"next" : "Next Element"
};
function myFunction(direction) {
console.log(msgs[direction]);
}
myFunction('previous');
答案 2 :(得分:0)
为了做到这一点,你将不得不使用eval
或其他一些基本上做同样事情的风格。
function myFunction(direction) {
var previousElement = "Previous Element";
var nextElement = "Next Element";
// Construct an actual call to previousElement or nextElement, not a string
var variable = eval(direction + "Element");
console.log(variable);
}
myFunction('previous');
//I want it to print "Previous Element" or "Next Element" depending on what the direction is.

这当然是isn't the safest or smartest thing to do,但这是您要求的并返回正确的结果。
答案 3 :(得分:-1)
在您的功能中使用console.log(direction + "Element")
。
连接两个字符串。当您尝试访问不存在的数组元素时,您编写的代码错误。
方向不是数组。这是一个字符串。