JQUERY对一组对象进行排序

Ada*_*dam 1 javascript jquery

我有一个包含许多对象的数组.

阵:

 var activeMembers=[];
Run Code Online (Sandbox Code Playgroud)

上面数组中的DIV对象如下所示 - 每次添加一个:

 <div id="mary" class="chatmember 1011"></div>
 <div id="steven" class="chatmember 1051"></div>
 <div id="adam" class="chatmember 1701"></div>
 <div id="bob" class="chatmember 1099"></div>
 <div id="peter" class="chatmember 1123"></div>
Run Code Online (Sandbox Code Playgroud)

有没有一种快速的方法可以通过AZ中的ID对数组中的DIV对象进行排序?

谢谢

jfr*_*d00 10

由于有很多愚蠢的实现被提议使用jQuery只是浪费资源,我会提出自己的.这只是数组中对象属性的直接javascript排序数组.为此,您只需将数组排序方法与自定义比较函数一起使用,该函数对id值进行alpha比较.根本没有理由或优势让jQuery参与其中.

activeMembers.sort(function(a, b) {
   var aID = a.id;
   var bID = b.id;
   return (aID == bID) ? 0 : (aID > bID) ? 1 : -1;
});
Run Code Online (Sandbox Code Playgroud)

请注意,根据问题的要求,这会对数组中的div引用列表进行排序.它不会对页面布局中的对象进行排序.为此,您必须对引用列表进行排序,然后根据新的数组顺序重新排列页面中的div.

如果您可以依赖于在您自己的HTML中没有两个ID相同的事实(因为您永远不应该有两个具有相同ID的对象),您可以缩短并加快自定义排序功能,只需这样:

activeMembers.sort(function(a, b) {
   return (a.id > b.id) ? 1 : -1;
});
Run Code Online (Sandbox Code Playgroud)