Айв получил массив объектов, что-то вроде этого:объекты JavaScript сортировочные
tab = [
{ top: true, i: 2, bottom: false },
{ top: true, i: 5, bottom: false },
{ top: true, i: 6, bottom: false },
{ top: false, i: 1, bottom: false },
{ top: false, i: 8, bottom: false },
{ top: false, i: 1, bottom: false },
{ top: false, i: 2, bottom: true },
{ top: false, i: 3, bottom: true },
{ top: false, i: 1, bottom: true },
{ top: true, i: 5, bottom: false }
]
И я хочу, чтобы отсортировать его, позволяет сказать, что мы имеем объект А и Б:
- если сверху == правда, поместить его в верхней части списка
- , если Ai == Bi, положить A и B рядом друг с другом независимо от того, что
- если снизу == верно, поместите его в конец списка
Так массив сверху, отсортированные будет выглядеть примерно так:
{ top: true, i: 2, bottom: false },
{ top: false, i: 2, bottom: true },
{ top: true, i: 5, bottom: false },
{ top: true, i: 5, bottom: false },
{ top: true, i: 6, bottom: false },
{ top: false, i: 8, bottom: false },
{ top: false, i: 1, bottom: false },
{ top: false, i: 1, bottom: false },
{ top: false, i: 1, bottom: true },
{ top: false, i: 3, bottom: true }
Im используя Array.sort, но я не могу заставить его работать, и это сводит меня с ума, любую идею?
EDIT: Я вижу, что правила Арент достаточно ясно, так Больная попытка быть более указать в настоящее время:
- если Ai == Bi, положить А и Б рядом друг с другом, независимо от того, что
- если верх == верно, поместите его в верхней части списка
если снизу == верно, поместите его в конец списка
A.top: правда, a.Bottom: правда - невозможно случай
- A.top: true, B.top: true, Ai! = Bi-order не имеет значения, то же самое с нижним
- top имеет более высокий приоритет, чем прижим, так что если A.top: true, B.bottom: true, Ai = Bi, то положим их на верхние
Было бы хорошо, чтобы опубликовать пример кода, который произвел пример некорректного выхода. –
'если A.i == B.i, положите A и B рядом друг с другом, независимо от того, что' - не должно ли это быть правилом 1? –
И как вы сортируете два элемента как с 'top' true, так и с разными' i'? Или у вас есть предмет с 'top' true и' bottom' true? Ваш вид, похоже, не полностью определен. –