在对对象数组进行排序时出现错误 无法将对象 '[object Array]' 的只读属性 '2' 分配给其它值
在对对象数组进行排序时出现错误 无法将对象 '[object Array]' 的只读属性 '2' 分配给其它值
我有一个对象数组,对象的结构如下(值会变化):
{ stats: { hp: 2, mp: 0, defence: 4, agility: 11, speed: 6, strength: 31 } }
我想按照速度降序对它们进行排序,用以下代码实现:
array.sort((a, b) => { return b.stats.speed - a.stats.speed })
然而,我遇到了以下错误,我无法理解发生了什么:
TypeError: Cannot assign to read only property '2' of object '[object Array]'
我漏掉了什么吗?
编辑:
在redux存储中的对象数组:
const enemyDefaultState = [ { name: 'European Boy1', stats: { hp: 2, mp: 0, defence: 4, agility: 11, speed: 6, strength: 31 } }, { name: 'European Boy2', stats: { hp: 2, mp: 0, defence: 4, agility: 4, speed: 2, strength: 31 } }, { name: 'European Boy3', stats: { hp: 2, mp: 0, defence: 4, agility: 7, speed: 7, strength: 31 } },
]
我导入数组并将其赋值给变量:
let enemies = getState().enemy; if (enemies) { //按照速度属性排序 enemies.sort((a, b) => { return b.stats.speed - a.stats.speed }) }