2015-06-28 4 views
-1

Я знаю, что, когда ваши сортировки два объекта, объект а и объект Ь, метод сортировки работ,Как отсортировать массив объектов в JQuery динамически

array.sort(function(a, b){ 
    var a1= a.name, b1= b.name; 
    if(a1== b1) return 0; 
    return a1> b1? 1: -1; 
}); 

однако я повторил список объектов StdClass из моих server, длинный список, так как я надеюсь классифицировать их по их объектным атрибутам. Если мой список данных выглядит так,

 array( 
      [7] => stdClass Object 
      (
      [id] => 3 
      [title] => Electrition 
      [img] => 
      [description] => 
      [school] => 
      [location] => 1 
      [url] => 
      [tablename] => 3 
      [votes] => 0 
      [name] => John Doe 
      [NumJobsdone] => 4 
       ) 

      [8] => stdClass Object 
      (
      [id] => 2 
      [title] => Electrition 
      [img] => 
      [description] => 
      [school] => 
      [location] => 1 
      [url] => 
      [tablename] => 2 
      [votes] => 0 
      [name] => Tico Marinez 
      [NumJobsdone] => 6 
      ) 

      [9] => stdClass Object 
      (
      [id] => 2 
      [title] => Engineer 
      [img] => 
      [description] => 
      [school] => 
      [location] => 1 
      [tablename] => 2 
      [votes] => 0 
      [name] => Jerry Smity 
      [NumJobsdone] => 6 
      ) 

     [10] => stdClass Object 
      (
      [id] => 2 
      [title] => Engineer 
      [img] => 
      [description] => 
      [school] => 
      [location] => 1 
      [url] => 
      [tablename] => 2 
      [votes] => 0 
      [name] => Laura Bastian 
      [NumJobsdone] => 6 
      ) 
      ) 

и им пытаются сортировать их по названию атрибут объявления, и я уже итерацию по списку с помощью метода $ .each, но как бы один вид через кратному объектов динамически с помощью jquery?

+0

Вы можете использовать '' json_encode создать годный к употреблению яваскрипта эквив. – davidkonrad

+0

это данные print_r, я обычно json_encode и эхо, чтобы моя функция AJAX могла получать данные, единственная проблема заключается в том, как не только выполнять итерацию данных, но и организовывать ее по атрибуту объекта. –

ответ

0

Try используя return a.title > b.title в .sort() функция сравнения

var arr = [{ 
 
    "title": "Electrician" 
 
}, { 
 
    "title": "Engineer" 
 
}, { 
 
    "title": "Architect" 
 
}]; 
 

 
var res = arr.sort(function(a, b) { 
 
    return a.title > b.title 
 
}); 
 

 
document.getElementsByTagName("pre")[0].textContent = JSON.stringify(res, null, 2);
<pre></pre>

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