微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何对对象的JS对象进行排序?

我在 PHP中构建了一个对象,使用了JSON_encode函数并通过ajax将其作为JSON字符串发送到我的JS脚本.然后我将它转换回一个对象.我遇到的问题是我想按照最初创建的顺序保留对象.请将这个对象看成是什么,一旦我进入JS,请看这个图片

当我创建对象时,它按字母顺序按客户字段排序.以A开头的客户名称将首先出现,B秒等等.正如您所看到的,现在,对象的第一个元素是以S开头的客户.看起来它以某种方式按照顶层的键自动排序对象,这是一个整数,所以我理解为什么会这样.

所以我想做的是重新排序这个对象,以便按字母顺序按客户字段对所有子对象进行排序.这可能吗?如果是这样,我该怎么办?

谢谢!

解决方法

这可能是 JavaScript对象和JavaScript数组之间的区别.对象更像是哈希表,其中键没有按任何特定顺序排序,而数组是值的线性集合.

在后端,确保编码数组而不是对象.检查最终编码的JSON,如果您的对象集合被{}而不是[]包围,则它被编码为对象而不是数组.

您可能会遇到问题,因为看起来您正试图通过ID号访问对象,而这是您希望这些对象在最终数组中占用的索引,这会带来另一个问题,因为您可能不想要当您只存储少量值时,包含40,000个条目的数组.

如果您只想迭代对象,则应确保编码数组而不是对象.如果要按特定ID访问对象,则可能必须对客户端对象进行排序(即从JSON响应中获取对象,然后创建另一个数组并将这些对象排序到其中,这样您就可以已排序的对象仍然可以通过id)访问它们.

您可以通过Google轻松找到有效的排序算法(或使用以下ELCas中的算法).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐