如何将变量值附加到另一个变量

时间:2016-05-11 16:55:53

标签: javascript jquery

如何将var值附加到另一个var

var price11 = 100;
var i = 11;
var displayprice;
displayprice= price + 'i'; // should assign 100(value of price11) to displayprice.

有可能吗?

2 个答案:

答案 0 :(得分:1)

使用 eval() (但我不喜欢这种方法,你可以在这里找到原因:Why is using the JavaScript eval function a bad idea?

var price11 = 100;
var i = 11;
var displayprice;
displayprice = eval('price' + i);

console.log(displayprice);

如果它在全局上下文中,那么从窗口对象

获取它

var price11 = 100;
var i = 11;
var displayprice;
displayprice = window['price' + i];

console.log(displayprice);

更新:更好的方法是使用对象。将对象属性定义为动态变量名称。您可以获取对象property value by Bracket notation.

// defining object
var obj = {
  price11: 100;
}
var i = 11;
// retrieve object property 
var displayprice = obj['price' + i];

console.log(displayprice);

答案 1 :(得分:0)

  
      
  • 绝不使用eval() Object-Oriented JavaScript - Second Edition eval()有时会很有用,但如果有其他选项则应该避免使用。大多数情况下有替代品,在大多数情况下,替代品更优雅,更易于编写和维护。 " Eval是邪恶的"是经验丰富的JavaScript程序员经常听到的口头禅。使用eval()的缺点是:
    - 安全性 - JavaScript功能强大,这也意味着它可能会造成损害。如果您不相信传递给eval()的输入来源,请不要使用它。
    - 性能 - 评估速度较慢"生活"代码而不是直接在脚本中使用代码。
  •   
  • 使用单var Object-Oriented JavaScript - Second Edition考虑一个"单个var"图案。在函数的最顶部定义函数中所需的所有变量,这样您就可以在一个地方查找变量,并希望防止意外的全局变量。
  •   
  • 使用动态名称的对象属性
  •   
var 
  obj,
  i = 11,
  displayprice;

obj.price11 = 100;

displayprice = obj['price' + i]; 

您可以动态获取对象的属性:obj['price' + i] => obj['price11'] => 100