JQUERY 对对象数组进行排序

2024-04-18

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

Array:

 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 对象进行排序?

thx


由于有很多愚蠢的实现被提议使用 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;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQUERY 对对象数组进行排序 的相关文章

随机推荐

  • Play Framework 2.6 CSRF 和会话

    我遇到了奇怪的问题 我正在我的网站上实现购物车功能 并使用会话来存储购物车位置 我有一个 POST 操作来将新位置添加到购物车 并且我启用了 CSRF 过滤器来保护网站 我在产品页面上用ajax调用它 所以第一次调用没问题 但第二次调用说未
  • Android相机参数setPictureSize导致图片出现条纹

    我正在尝试使用 Android 相机拍照 我需要捕获 1600 宽 x 1200 高 图像 第 3 方供应商要求 我的代码似乎适用于许多手机摄像头 但 setPictureSize 会导致某些手机 三星 Galaxy S4 三星 Galax
  • 为什么 Java 的 SSLSocket 发送版本 2 客户端问候?

    The SSLSocket getEnabledProtocols 方法返回以下内容 SSLv2Hello SSLv3 TLSv1 事实上 当我打电话时connect 并且我打开了 SSL 调试 我看到使用了 v2 客户端 hello ma
  • Java:BufferedReader 的 readLine 方法的效率和可能的替代方案

    我们正在努力减少延迟并提高用 Java 编写的进程的性能 该进程通过 readLine 方法从套接字消费数据 xml 字符串 缓冲读取器 http java sun com javase 6 docs api java io Buffere
  • /dev/mem的访问权限

    我有一系列关于 dev mem 网上很多文章 好像都提到了 dev mem作为通往 Physical RAM 但如果我是对的 dev mem是通往 Physical Address Space 处理器的控制寄存器可能包括许多硬件外设的控制寄
  • 如何创建 Android Spinner 作为弹出窗口?

    我想在用户点击菜单项时弹出一个旋转对话框 以允许用户选择一个项目 我是否需要一个单独的对话框 或者我可以直接使用 Spinner 吗 我懂了这个链接 http developer android com reference android
  • 美国边界线未添加到美国分散地区的 geom_map 地图中

    我有一张美国分散地区的地图 这是在以下问题中 包含数据链接 合并数据后 ggplot2 geom polygon 的映射变得疯狂 https stackoverflow com q 48469441 1813491 回答得很好 然后我尝试添
  • Gradle 同步失败:内容长度分隔的消息正文过早结束(预期:27633912;已接收:12844960)

    我已经安装了 Android Studio 3 1 4 但 Gradle 版本 4 4 未同步 它说 Gradle 同步失败 内容长度分隔的消息正文过早结束 预计 27633912 已收到 12844960 构建 Gradle https
  • 报告多个 Python 版本的累积覆盖率

    我的代码根据当前的 Python 版本有条件地运行 因为我支持同一包中的 2 6 2 7 和 3 3 我目前使用默认版本的 Python 生成这样的覆盖率报告 coverage run source mypackage setup py t
  • Node.js-“npm installexpress”错误:0906D06C:PEM 例程:PEM_read_bio npm

    我已经安装了node js 并且npm也随之安装了 在我的 Windows 命令提示符中 当我写 npm install express 时 它给出以下错误 如何解决这个问题 C 用户 gt npm v 2 11 2 C Users gt
  • 使用 vim 处理文本文件中的 \r \n ^M ​​^@

    当我将 excel 文件中的数据行保存为制表符分隔的 txt 文件 然后在 VIM 中打开这些文件时 我发现 excel 中曾经的多行文件现在是 VIM 中的单行文件 可以使用一些替换命令在 VIM 中分隔 行 s M r n g 此后 线
  • Ruby 相当于 perl 的“Data::Dumper”,用于打印深层嵌套的散列/数组

    这不是重复的Ruby 相当于 Perl Data Dumper https stackoverflow com questions 2159426 ruby equivalent of perl datadumper 这个问题已经存在超过
  • 如何下载 Java SE 6 更新 121?

    我需要 JDK6 来运行遗留应用程序 但我还需要 TLS 1 2 支持 这个链接 http www oracle com technetwork java javase overview 156328 html R160 121表示 Jav
  • CAPL 写入文本文件

    我对 CAPL 语言还很陌生 因此 我在将数据写入 txt 文件时遇到问题 这是我写的代码 includes variables message Generate Num Gen message Logger Logs msTimer ti
  • 在某些条件下使用钩子自动将一个分支合并到另一个分支?

    我的 github 存储库中有两个分支 master and dev分支 我有一个需要合并的要求master分支到dev在以下条件下分支 一旦 PR 直接合并到 master 分支 那么我需要自动将 master 分支合并回 dev 分支
  • 无法使用相同的私钥签署 Android 应用精简版

    我刚刚签署了我的付费应用程序 现在我想使用相同的私钥签署它的精简版 我现在的问题是 收到此错误 jarsigner 无法打开 jar 文件 我必须为其创建另一个密钥库吗 或者问题是否来自于我将其保存为不同的文件名 我能做些什么 谢谢 这个问
  • 在 Angular 8 应用程序中实现会话存储

    我正在构建一个电影应用程序来帮助我的学习 我想知道如何捕获按钮的点击次数并将其保存在会话存储中 我已经能够让点击工作了 它增加并显示每个按钮的点击次数 我用指令做到了这一点 我还尝试将按钮的 id 作为键和点击次数作为值附加到会话存储中 我
  • LabelledGeneric 获取类名

    我对 Shapeless 相当陌生 正如人们从我的问题中推断出来的那样 给定一个实例LabelledGeneric 如何获取它所代表的类的名称 我可以从中获取字段名称信息Keys 所以我想我需要一些其他类型的Witness它封装了类型本身
  • 如何在 Linq GroupBy 中选择前 N 行

    希望你能在这里帮助我 我有一个预订列表 我想在其中获取每组旅游运营商中的前两行 这是数据示例 List
  • JQUERY 对对象数组进行排序

    我有一个包含许多对象的数组 Array var activeMembers 上面数组中的 DIV 对象如下所示 每个对象一次添加一个 div class chatmember 1011 div div class chatmember 10