オブジェクトの配列があり、オブジェクトは次のようになります (値が変わります):
{
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: オブジェクト '[オブジェクト配列]' の読み取り専用プロパティ '2' に割り当てることができません
何が足りないのでしょうか?
編集: 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) {
//sort by speed stat
enemies.sort((a, b) => {
return b.stats.speed - a.stats.speed
})
}