[英]Sort an array of objects by property AND alphabetically
我了解如何按一个属性对一组对象进行排序,但不知道如何按字母顺序再次对数组进行重新排序(同时保持按属性排序)。
例如,我有一个数组:
[
{title: 'Hello', category: 'something'},
{title: 'Good', category: 'something else'},
{title: 'Monday', category: 'something'},
{title: 'Evening', category: 'something'}, {title: 'Food', category: 'others'}
]
要按类别对数组进行排序:
array.sort(
(a, b) => -b.category.localeCompare(a.category)
)
但是,如何在此数组中按字母顺序对每个类别中的项目进行排序,同时保持元素按类别排序?
如果localeCompare
返回0
,则比较另一个字段
const array = [{ title: 'Hello', category: 'something' }, { title: 'Good', category: 'something else' }, { title: 'Monday', category: 'something' }, { title: 'Evening', category: 'something' }, { title: 'Food', category: 'others' } ] array.sort( (a, b) => { const category = -b.category.localeCompare(a.category) if (category) return category return a.title.localeCompare(b.title) } ) console.log(array)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.