循环中的Javascript动态变量名称

时间:2018-08-20 04:00:43

标签: javascript variables dynamic

我无法弄清楚如何在JS中使用动态变量。我有一个代码清单,关联了一些余额,并且我想动态显示循环中的每个“余额标签”。 但是似乎根本没有使用我添加到变量中的追加?

<ion-content elastic-header="">
  <div class="background-image">
    <!--The parallax content-->
  </div>
  <div class="main-content">
  <!--The scroll content-->
</ion-content>

3 个答案:

答案 0 :(得分:1)

要使用动态变量,请将variableNames保留在对象中,每当您动态创建变量名称时,请引用该对象以获取变量的值。

var ticker = ['CURRENCY1','CURRENCY2','CURRENCY3'];
 
var allBalances = {
  balancesCURRENCY1 : 20,
  balancesCURRENCY2 : 30,
  balancesCURRENCY3 : 40

}

for (var tick in ticker) {

  if (allBalances['balances'+ticker[tick]] != 0) {
    console.log(true);
  }     

}

答案 1 :(得分:1)

首先,您必须在数组中引用名称:[CURRENCY1,CURRENCY2,CURRENCY3],否则它们将被视为变量。

然后,您可以从this访问动态名称,请参见下面的代码段:

var ticker = ['CURRENCY1', 'CURRENCY2', 'CURRENCY3'];
var balancesCURRENCY1 = 20;
var balancesCURRENCY2 = 30;
var balancesCURRENCY3 = 40;

for (var tick in ticker) {

  if (this['balances'+ticker[tick]] != 0) {
    console.log(
      ticker[tick], 
      'balances'+ticker[tick] + ' = ' + this['balances'+ticker[tick]],
      true
    );
  }     

}

答案 2 :(得分:0)

维护2个并行阵列会更清洁

var ticker = ['CURRENCY1','CURRENCY2','CURRENCY3'];
var balances = [20, 30, 40];

或对象数组:

var tickerInfo = [
  {currency: 'CURRENCY1', balance: 20},
  {currency: 'CURRENCY2', balance: 30},
  {currency: 'CURRENCY3', balance: 40},
];