我有一个 JSON 文件,它是一个数组并包含 2 个对象,它们相同但“src”。
const data = dataFromJson[randomValue]
错误:未捕获类型错误:无法分配给对象“#”的只读属性“x”
我可以使用这两个对象,但随机一个被冻结,用
Object.isFrozen()
检查,我不知道为什么。
这里是代码。 params 是 react-redux 状态值,playerStats 是一个对象,numEvents 是一个数字。敌人是 json
function getRandomEnemy({ playerStats, numEvents }) {
//Imports
const enemy = enemies[Math.floor(Math.random() * enemies.length)]
const { trullyKarma, health, armor, lucky } = playerStats
//Functions
const calculateStatByKarma = valueStat => {
const reduceByCantEvents = numEvents < 10 ? 0.8 + numEvents * 0.02 : 1
const maxValue = valueStat * 1.8 * reduceByCantEvents,
karmaMultiplier = trullyKarma > 0 ? 1 + trullyKarma * 0.05 : 1,
statMultiplier = valueStat * 0.5
const calculatedValue =
maxValue - Math.random() * statMultiplier * karmaMultiplier
return Math.floor(calculatedValue)
}
//Variables
const calculatedHealth = calculateStatByKarma(health)
const specialMovesProbs = lucky > 0 ? 15 : 15 + lucky * -1.5
const attack = health / 7
enemy.fullHealth = calculatedHealth
enemy.currentHealth = calculatedHealth
enemy.armor = calculateStatByKarma(armor)
enemy.attack = calculateStatByKarma(attack)
enemy.critickProb = specialMovesProbs
enemy.dodge = specialMovesProbs
return enemy
}
const data = Object.assign({},dataFromJson[randomValue])