JS对象数组排序array[object]
遇到一个问题,把一个对象数组根据对象的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);
分析 我们这里有两个问题:
- 数组内容为object
- object排序内容为string
data.sort((item1, item2) => item1.name[0].toUpperCase().charCodeAt() - item2.name[0].toUpperCase().charCodeAt());
【JS对象数组排序array[object]】解释:
使用object的name数据的第一个字符,进行
toUpperCase()
转换成大写后,再使用charCodeAt()
方法计算出字符的整数值,然后进行对比即可。推荐阅读
- 数组常用方法一
- 一个选择排序算法
- Java|Java基础——数组
- jQuery插件
- iOS面试题--基础
- 排序(归并排序)
- JS常见数组操作补充
- 口红选得好,对象不愁找......
- 【图解】9张图彻底搞懂堆排序
- java静态代理模式