gpt4 book ai didi

javascript - JQUERY 对对象数组进行排序

转载 作者:行者123 更新时间:2023-11-30 07:03:09 25 4
gpt4 key购买 nike

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

数组:

 var activeMembers=[];

上述数组中的 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>

有没有一种快速的方法可以根据 A-Z 的 ID 对数组中的这些 DIV 对象进行排序?

谢谢

最佳答案

既然有这么多愚蠢的实现被提议使用 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;
});

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

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

activeMembers.sort(function(a, b) {
return (a.id > b.id) ? 1 : -1;
});

关于javascript - JQUERY 对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7104024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com