资讯专栏INFORMATION COLUMN

根据对象中某一属性,进行排序

QiShare / 1547人阅读

摘要:如果后台传过来的对象,顺序是被打乱的或者说,对象有多个属性,在这个页面需要按照排序,在另一个页面需要按照数量排序这里就利用字符的属性,进行排序了提供了相关的方法需要进行排序的数据一二三四值一转值成功功值七日值礼拜值调用排序方法,按照为关键字

如果后台传过来的对象,顺序是被打乱的
或者说,对象有多个属性,在这个页面需要按照id排序,在另一个页面需要按照数量排序
这里就利用字符的Unicode属性,进行排序了
sort提供了相关的方法

id name num level
//需要进行排序的数据
var data = [{
    "id": 1,
    "name": "abc",
    "num": 123,
    "level": "一二三四" //Unicode值 u4e00u4e8cu4e09u56db
}, {
    "id": 5,
    "name": "acb",
    "num": 456,
    "level": "一转" //Unicode值 u4e00u8f6c
}, {
    "id": 2,
    "name": "bac",
    "num": 234,
    "level": "成功功" //Unicode值 u6210u529fu529f
}, {
    "id": 3,
    "name": "a12",
    "num": 345,
    "level": "七日" //Unicode值 u4e03u65e5
}, {
    "id": 4,
    "name": "a32",
    "num": 567,
    "level": "礼拜" //Unicode值 u793cu62dc
}]
//调用排序方法,按照level为关键字进行排序
//true表示升序排序,如果传入false表示降序排序
//第二个参数位置不传值时,默认升序排序
data.sort(sortBy("level", true));
//渲染数据
re(data);

function re(data) {
    var str = "";
    for (var i = 0; i < data.length; i++) {
        str +=
            "" +
            "    " + data[i].id + "" +
            "    " + data[i].name + "" +
            "    " + data[i].num + "" +
            "    " + data[i].level + "" +
            ""
    }
    $("tbody").html(str)
}
function sortBy(attr, rev) {
    //第二个参数没有传递 默认升序排列
    if (rev == undefined) {
        rev = 1;
    } else {
        rev = (rev) ? 1 : -1;
    }
    return function (a, b) {
        a = a[attr];
        b = b[attr];
        if (a < b) {
            return rev * -1;
        }
        if (a > b) {
            return rev * 1;
        }
        return 0;
    }
}

按照level排序的结果

汉字排序是按照汉字的Unicode编码进行排序的

目前没找到按照汉字拼音排序的方法,望各位大佬指教

附查询Unicode网址 http://tool.chinaz.com/tools/...

按照id排序的结果

按照name排序的结果

按照num排序的结果

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/99284.html

相关文章

  • 根据对象某一属性进行排序

    摘要:如果后台传过来的对象,顺序是被打乱的或者说,对象有多个属性,在这个页面需要按照排序,在另一个页面需要按照数量排序这里就利用字符的属性,进行排序了提供了相关的方法需要进行排序的数据一二三四值一转值成功功值七日值礼拜值调用排序方法,按照为关键字 如果后台传过来的对象,顺序是被打乱的或者说,对象有多个属性,在这个页面需要按照id排序,在另一个页面需要按照数量排序这里就利用字符的Unicode...

    VioletJack 评论0 收藏0
  • Lodash常用用法总结

    摘要:是一个轻量级的工具函数库,它方便了日常开发中对数据的操作,提高了开发效率。根据平时开发中对数据的操作,我对常见的用法做了以下总结,方便今后的学习和整理。 Lodash是一个轻量级的JavaScript工具函数库,它方便了日常开发中对数据的操作,提高了开发效率。 ​ 日常开发中,通常会对数据,特别是数组和对象进行各种读写等操作:比如去重,拷贝,合并,过滤,求交集,求和等等。根据平时...

    Soarkey 评论0 收藏0
  • 数据结构之Redis应用~常用命令~应用场景(重点)(一)

    摘要:数据结构之应用之常用命令之应用场景说明本文参考了开发实战指南,还有实战自己之前的笔记。我们正式进入主题吧,中种数据结构的使用场景介绍。应用场景土法建索引。此命令会覆盖哈希表中已存在的域。 数据结构之Redis应用之常用命令之应用场景 说明 1、本文参考了Redis开发实战指南GitBook,还有《Redis实战》自己之前的笔记。主体框架来自这里。 2、感谢大佬们的付出,在这里自己只是...

    mcterry 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<