I'm having array of objects where object looks like this (values change):
{
stats: {
hp: 2,
mp: 0,
defence: 4,
agility: 11,
speed: 6,
strength: 31
}
}
I want to sort them in descending order by speed doing:
array.sort((a, b) => {
return b.stats.speed - a.stats.speed
})
However I'm getting this error and I can't really decipher whats going on:
TypeError: Cannot assign to read only property '2' of object '[object Array]'
What am I missing?
Edit:
Array of object in redux store:
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
}
},
]
I import the array and assign it to the variable:
let enemies = getState().enemy;
if (enemies) {
//sort by speed stat
enemies.sort((a, b) => {
return b.stats.speed - a.stats.speed
})
}
See Question&Answers more detail:
os