gpt4 book ai didi

javascript - 对对象数组进行排序时出错无法分配给对象 '2' 的只读属性 '[object Array]'

转载 作者:行者123 更新时间:2023-12-03 07:02:41 24 4
gpt4 key购买 nike

我有对象数组,其中对象如下所示(值发生变化):

   {
stats: {
hp: 2,
mp: 0,
defence: 4,
agility: 11,
speed: 6,
strength: 31
}
}

我想按执行速度降序对它们进行排序:

  array.sort((a, b) => {
return b.stats.speed - a.stats.speed
})

但是我收到此错误,并且我无法真正破译发生了什么:

类型错误:无法分配给对象“[object Array]”的只读属性“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
})
}

最佳答案

因为数组是frozenstrict mode ,您需要在排序之前复制数组:

array = array.slice().sort((a, b) => b.stats.speed - a.stats.speed)

关于javascript - 对对象数组进行排序时出错无法分配给对象 '2' 的只读属性 '[object Array]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53420055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com