【发布时间】:2017-08-13 12:11:08
【问题描述】:
使用 Javascripts .sort(),我有一个具有“类别”属性和“子类别”属性的对象列表。到目前为止,我使用item1.category().localeCompare(item2.category()) 按类别对列表进行了排序,但在每个类别组中,我希望对象按子类别排序。
到目前为止,我的数组排序如下:
[
{'category':'cat1', 'subcategory':'subcat1'},
{'category':'cat1', 'subcategory':'subcat2'},
{'category':'cat1', 'subcategory':'subcat1'},
{'category':'cat1', 'subcategory':'subcat2'},
{'category':'cat1', 'subcategory':'subcat2'},
{'category':'cat1', 'subcategory':'subcat1'},
{'category':'cat1', 'subcategory':'subcat2'},
{'category':'cat2', 'subcategory':'subcat1'},
{'category':'cat2', 'subcategory':'subcat2'},
{'category':'cat2', 'subcategory':'subcat1'},
{'category':'cat2', 'subcategory':'subcat2'},
{'category':'cat2', 'subcategory':'subcat2'},
{'category':'cat2', 'subcategory':'subcat1'},
{'category':'cat2', 'subcategory':'subcat2'}
]
而我需要它是这样的:
[
{'category':'cat1', 'subcategory':'subcat1'},
{'category':'cat1', 'subcategory':'subcat1'},
{'category':'cat1', 'subcategory':'subcat1'},
{'category':'cat1', 'subcategory':'subcat2'},
{'category':'cat1', 'subcategory':'subcat2'},
{'category':'cat1', 'subcategory':'subcat2'},
{'category':'cat1', 'subcategory':'subcat2'},
{'category':'cat2', 'subcategory':'subcat1'},
{'category':'cat2', 'subcategory':'subcat1'},
{'category':'cat2', 'subcategory':'subcat1'},
{'category':'cat2', 'subcategory':'subcat2'},
{'category':'cat2', 'subcategory':'subcat2'},
{'category':'cat2', 'subcategory':'subcat2'},
{'category':'cat2', 'subcategory':'subcat2'}
]
另外我只能使用一个 sort() 并且不能在它之外做任何事情,因为它被作为参数传递给另一个函数。
【问题讨论】:
-
a.category.localeCompare(b.category) || a.subcategory.localeCompare(b.subcategory)
标签: javascript arrays sorting