在前端运用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":"重庆市"}]
|