Я пытаюсь найти способ в JS для сортировки массива без фактического изменения порядка элементов, но больше похоже на функцию группировки.Сортировка массива без изменения порядка
Образца данные:
[
{group: 'test', title: 'A'},
{group: 'test', title: 'B'},
{group: 'test2', title: 'C'},
{group: 'test', title: 'D'}
]
Моя идея заключается в том, чтобы сделат [].sort()
так, что мой последний заказ:
[
{group: 'test', title: 'A'},
{group: 'test', title: 'B'},
{group: 'test', title: 'D'},
{group: 'test2', title: 'C'}
]
Средство: Я не изменил порядок первых двух пунктов, но только переключались # 3 и # 4 из-за своей группы. Если бы я сделал с классическим localeCompare
, я бы закончил с восстановлением моих групп на основе их ценности, чего я не хочу, их порядок должен быть сохранен.
EDIT: Учитывая ответы, я хочу вновь уточнить, что я не хотят изменить порядок групп, означает, что они должны не быть в алфавитном порядке, но вместо этого, они должны быть сгруппированы по заказу они появились.
Возможный дубликат [Сортировка массива объектов JavaScript] (http://stackoverflow.com/questions/979256/sorting-an-array-of-javascript-objects) –
Возможный дубликат [Сортировка объектов в массиве по значение поля в JavaScript] (http://stackoverflow.com/questions/1129216/sorting-objects-in-an-array-by-a-field-value-in-javascript) –
Разве вы не сортируете по значение 'group', или я что-то упускаю? – Aioros