我不知道如何为我的问题命名。这是问题所在:
//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或其他任何东西。谢谢:))
答案 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
。