如何根据参数值打印出不同的结果?

时间:2016-08-22 20:04:57

标签: javascript

我想知道你是否可以使用字符串连接来调用变量,甚至是名称变量。我试图根据函数中传递的参数输出不同的文本。

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');

4 个答案:

答案 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")

  • 连接两个字符串。当您尝试访问不存在的数组元素时,您编写的代码错误。

  • 方向不是数组。这是一个字符串。