在javascript中使用变量循环几次

时间:2015-01-25 14:15:27

标签: javascript

我不知道如何为我的问题命名。这是问题所在:

 //Setup all the stats.
        var randomStat = Math.floor(Math.random() * ((monster.level + 5) - monster.level + 1) + monster.level);
        var multiplier = randomStat * itemQuality.qualityMultiplier;


    //Assign the Stats.
    var strength = Math.floor(multiplier * itemSubType.strengthMultiplier / 2); //divide each stat by 2 for better balance
    var endurance = Math.floor(multiplier * itemSubType.enduranceMultiplier / 2);
    var agility = Math.floor(multiplier * itemSubType.agilityMultiplier / 2);
    var dexterity = Math.floor(multiplier * itemSubType.dexterityMultiplier / 2);
    var wisdom = Math.floor(multiplier * itemSubType.wisdomMultiplier / 2);
    var intelligence = Math.floor(multiplier * itemSubType.intelligenceMultiplier / 2);
    var luck = Math.floor(multiplier * itemSubType.luckMultiplier / 2);

它的作用是创建一个randomStat变量和乘数变量,然后将它们用于每个统计数据。我的问题是,如果每个属性,即" strengthMultiplier"与" enduranceMultiplier"相同有时情况就是如此,因为stats将完全相同,因为randomStat和multiplier只调用一次并用于每个stat。

我正在尝试为它创建一个循环,将其调用7次,每次调用它时使用一个统计数据,总计最多7个统计数据。 我当然可以为每个统计数据创建2个新变量(共14个),但我希望有更好的方法可以使用循环。 我正在使用javascript,所以任何帮助都只欢迎使用javascript,而不是jquery或其他任何东西。谢谢:))

1 个答案:

答案 0 :(得分:0)

您可以将数据保存在数组或对象中(后者显示在此处),并迭代这些:

var stats = {
  strenght: null,
  endurance: null,
  agility: null,
  dexterity: null,
  wisdom: null,
  intelligence: null,
  luck: null
};

for (var stat in stats) {
  // todo: consider using Object.hasOwnProperty here.

  var randomStat = Math.floor(Math.random() * ((monster.level + 5) - monster.level + 1) + monster.level);
  var multiplier = randomStat * itemQuality.qualityMultiplier;      

  stats[stat] = Math.floor(multiplier * itemSubType[stat + 'Multiplier'] / 2);
}

这会将值存储在stats dict中,即stats.luck而不是luck