在javascript中使用变量进行循环几次

Using variables inside javascript for loop few times

本文关键字:循环 几次 javascript 变量      更新时间:2023-09-26

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

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

它的作用是创建一个随机统计变量和乘数变量,然后将它们用于每个统计数据。我的问题是,如果每个统计数据(即"强度乘数")与有时是这种情况的"耐力乘数"相同,那么统计数据将完全相同,因为随机统计和乘数只调用一次,并用于每个统计数据。

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

您可以将

统计信息保存在数组或对象中(后者如下所示),并迭代这些:

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字典中,即作为stats.luck而不是luck