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);

分析 我们这里有两个问题:
  1. 数组内容为object
  2. object排序内容为string
所以,我们需要拆分开来进行解决:
data.sort((item1, item2) => item1.name[0].toUpperCase().charCodeAt() - item2.name[0].toUpperCase().charCodeAt());

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

    推荐阅读