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

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

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

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

谢谢!

解决方法

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

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

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

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

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...