有一个如下所示的数组:
[
{
_id: 'xxnQt5X8pfbcJMn6i',
order: 2
},
{
_id: 'X8pfbcJxxnQt5Mn6i',
order: 1
},
{
_id: 'Qt5X8pfxxnbcJMn6i',
order: 3
}
]
现在我需要通过order
值对此数组的对象进行排序。我试着这样做:
array.sort((a, b) => {
return (a.order > b.order)
? 1
: (b.order > a.order)
? -1
: 0
})
但首先它看起来有点复杂,只是按整数值排序,然后它给我错误TypeError: Cannot assign to read only property '1' of object '[object Array]'
答案 0 :(得分:2)
这可以使用Array.prototype.sort实现,不需要三元运算符的进一步返回条件,数组将隐式按第一个比较排序:
console.log([
{
_id: 'xxnQt5X8pfbcJMn6i',
order: 2
},
{
_id: 'X8pfbcJxxnQt5Mn6i',
order: 1
},
{
_id: 'Qt5X8pfxxnbcJMn6i',
order: 3
}
].sort((a, b) => a.order - b.order))
我无法使用提供的示例重现您所获得的错误。