繁体   English   中英

按属性和字母顺序对对象数组进行排序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM