外链论坛

 找回密码
 立即注册
搜索
查看: 18|回复: 0

Javascript对Json数据快速进行排序

[复制链接]

3026

主题

155

回帖

9923万

积分

论坛元老

Rank: 8Rank: 8

积分
99239027
发表于 2024-10-10 04:20:14 | 显示全部楼层 |阅读模式

在前端运用js对api返回的数据进行快速排序,能够有效减少许据请求,加强页面的响应和用户体验。

直接分享代码如下:

sortJson(array, field, reverse) { /** * json 数据排序 * @param<array> array 原始json字符串 *@param <field> string 排序字段 * @param <reverse> string 倒序 */ //数组长度少于2 或 指定排序字段 或 不是json格式数据 if (array.length < 2|| !field || typeofarray[0] !== "object") return array //数字类型排序 if (typeof array[0][field] === "number") { array.sort(function (x, y) { return x[field] - y[field] }) } //字符串类型排序 if (typeof array[0][field] === "string") { array.sort(function (x, y) { return x[field].localeCompare(y[field]) }) } //倒序 if (reverse) { array.reverse() }return array }

原始数据:

let obj = [ { id: 1, name: jake, age: 12, addres: 成都市 }, { id: 2, name: rose, age: 32, addres: 重庆市 }, { id: 3, name: lily, age: 22, addres: 长沙市 } ]

调用办法及输出结果如下:

console.log(sortJson(obj, age)) //输出 [{"id":1,"name":"jake","age":12,"addres":"成都市"},{"id":3,"name":"lily","age":22,"addres":"长沙市"},{"id":2,"name":"rose","age":32,"addres":"重庆市"}] console.log(sortJson(obj, name)) //输出 [{"id":1,"name":"jake","age":12,"addres":"成都市"},{"id":3,"name":"lily","age":22,"addres":"长沙市"},{"id":2,"name":"rose","age":32,"addres":"重庆市"}]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-9 04:05 , Processed in 0.066885 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.