javascript - 数组列表的排序问题

标签 javascript jquery arrays

我遇到以下问题:

我尝试对包含标识该人(学生或教师)的标志、该人的代码、该人的姓名、该人的状态(事件、不活动、已阻止)和该人的状态的人员列表进行排序。该房间的参与状态(事件、非事件和锁定),所有这些信息都位于我称为 arrayVelhoAux 的向量中。在这里,我想按字母顺序对这个向量进行排序(A,B,C,D,E,...)。

arrayVelhoAux.FLG_IDENT_PESSO = arrayCursor[j].FLG_IDENT_PESSO;
arrayVelhoAux.COD_IDENT_PESSO = pessoa.COD_IDENT_PESSO;
arrayVelhoAux.TXT_NOMEX_PESSO = pessoa.TXT_NOMEX_PESSO;
arrayVelhoAux.FLG_STATU_PESSO = pessoa.FLG_STATU_PESSO;
arrayVelhoAux.FLG_STATU_PARTC = arrayCursor[j].FLG_STATU_PARTC;

arrayVelho.push(arrayVelhoAux);

为了完成这个向量,我正在做一个循环,因为有其他表中捕获的数据。在完全实现这个向量之后,我做了一个 .sort() 来对其进行排序。

arrayVelho.sort(compareArray);

compareArray函数只是现象,哪个更大。将所有字母都大写,并以相同的大小进行比较。

function compareArray(a1,b1) {
    if(a1.TXT_NOMEX_PESSO.toUpperCase() > b1.TXT_NOMEX_PESSO.toUpperCase()) return 1;
    if(a1.TXT_NOMEX_PESSO.toUpperCase() < b1.TXT_NOMEX_PESSO.toUpperCase()) return -1;
    return 0;
}

显然没有任何问题,并且发生了一些有趣的事情,因为操作系统正在比较一些,其他的则乱序。如下图所示。

Problems with the ordination of a list of array

我想知道是否有更好的解决方案,或者是否可以让该解决方案 100% 正常运行。

最佳答案

sort函数的回调函数应返回-1(或小于0)或1(或大于0)或0

因为您的返回 bool 值被视为 10,并且从不 -1。这就是为什么你的排序有时是错误的。

更多信息请点击 https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

关于javascript - 数组列表的排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36499093/

相关文章:

按键上下文的 JavaScript 检测(表单历史选择与表单提交)

javascript - 如何将数据从appdelegate传递到jquerymobile中的index.html

java - JSP将 "rendered"图像另存为

java - 在循环中使用数组名称作为变量 (Java)

javascript - OpenSuse 上 node.js 0.6.6 的 SetDebugMessageDispatchHandler 错误

javascript - 如何删除 Javascript 数组中的方括号?

javascript - 以数组为参数并生成随机数的函数

c++ - 在 C++ 中如何对一组自变量应用相同的操作?

JavaScript 对象 - 不同类型取决于上下文

javascript - 使用Jquery显示图像 "find"