2017-02-07 2 views
0

Итак, у меня есть объект JSON, возвращаемый ajax, который мне нужно отсортировать по мета-значению 1 и 0 сначала, затем по заголовку, удерживая 1 в верхней части. Поэтому по существу мне нужно отсортировать все по custom_fields ['visitor_bureau'], затем по названию. Я пробовал все, что только могу, включая поиск разных функций сортировки по всему месту, чтобы лучше понять, как писать это и не может показаться правильным.Сортировка JSON по значению bool и заголовку

Я использовал JSON.stringify(), чтобы сделать объект строкой. Это на самом деле огромный объект JSON, но мне просто нужны 2 поля для сортировки. visitor_bureau является логическим, и заголовок может быть любой строкой. Это ужасное описание, но я здесь.

{"title":"Some Place","visitor_bureau":"1"} 
+3

Это массив объектов, не так ли? – ezakto

+4

'' 1 "' не является логическим .. – Keith

+0

Итак, вы показываете объект? Как можно сортировать объект? Это массив объектов? – epascarello

ответ

4

Это будет работать, используя метод sort():

let array = [{ 
 
    "title": "A Some Place", 
 
    "visitor_bureau": "0" 
 
}, { 
 
    "title": "B Some Place", 
 
    "visitor_bureau": "1" 
 
}, { 
 
    "title": "C Some Place", 
 
    "visitor_bureau": "1" 
 
}]; 
 

 
array.sort((a, b) => b.visitor_bureau - a.visitor_bureau || a.title.localeCompare(b.title)); 
 

 
console.log(array)

+0

Благодарим вас за помощь, которая сработала как шарм! Узнал что-то новое там, поскольку я не знал, что вы можете использовать => с javascript. Я использую его все время с PHP, но да. –

Смежные вопросы