Ранее я задавал следующий вопрос: Может ли JavaScript или jQuery сортировать массив JSON по нескольким критериям?
Я думаю, что, возможно, допустил ошибку, задавая вопрос, потому что я указал массив JavaScript, а не объект, и кажется, что это различие является источником трудностей, с которыми я сталкиваюсь.
У меня есть следующий объект, определенный JSON, который существует на моей странице, который используется для функции автозаполнения:
var fundList = [
{ "name": "Pension Managed Fund 1", "id": 21, "cid": "N0", "dupId": 53 },
{ "name": "Managed Property Fund 2", "id": 407, "cid": "N0", "dupId": 58 },
{ "name": "Retirement Managed Fund 3", "id": 640, "cid": "N0", "dupId": 111 },
{ "name": "Retirement Managed Fund 4", "id": 752, "cid": "N0", "dupId": 115 }
]
Мне нужно отсортировать эти элементы в алфавитном порядке по их именам, но они также должны быть упорядочены по значению, введенному в текстовое поле (которое вызывает автозаполнение)
Так, например, если пользователь введет «Managed» в текстовое поле, приведенный выше список будет отсортирован следующим образом:
Managed Property Fund 2
Pension Managed Fund 1
Retirement Managed Fund 3
Retirement Managed Fund 4
Если они наберут «Выход на пенсию», список будет отсортирован:
Retirement Managed Fund 3
Retirement Managed Fund 4
Managed Property Fund 2
Pension Managed Fund 1
Если набрать «Фонд», порядок будет в обычном алфавитном порядке:
Managed Property Fund 2
Pension Managed Fund 1
Retirement Managed Fund 3
Retirement Managed Fund 4
Что мне нужно сделать, чтобы иметь возможность отсортировать это по названию и указанным мною критериям? Я пытался использовать fundList.sort(new function(a, b)
, как предложено в предыдущем вопросе, но это возвращает функцию с неопределенной ошибкой.