美文网首页
JS对象数组排序array[object]

JS对象数组排序array[object]

作者: NextStack | 来源:发表于2018-03-09 11:43 被阅读0次

    遇到一个问题,把一个对象数组根据对象的name数据进行排序。

    比如数据:

    [
    {id:'aaa',name:'aaaa'},
    {id:'ccc',name:'cccc'},
    {id:'44',name:'EEE'},
    {id:'1',name:'BbB'}
    ]
    

    需要根据a-Z进行排序(不区分大小写)

    原理

    array提供了一个sort方法进行排序,接收两个参数,两个参数进行对比即可:

    [11,55,33,77,22].sort((a,b) => a-b);
    

    分析

    我们这里有两个问题:

    1. 数组内容为object
    2. object排序内容为string

    所以,我们需要拆分开来进行解决:

    data.sort((item1, item2) => item1.name[0].toUpperCase().charCodeAt() - item2.name[0].toUpperCase().charCodeAt());
    

    解释:
    使用object的name数据的第一个字符,进行toUpperCase()转换成大写后,再使用charCodeAt()方法计算出字符的整数值,然后进行对比即可。

    相关文章

      网友评论

          本文标题:JS对象数组排序array[object]

          本文链接:https://www.haomeiwen.com/subject/dispfftx.html