将数组按中文首字母排序

好久没来写博客了,最近工作中,碰到了一个按中文排序问题,现在跟大家分享一下。
先上代码:

//排序函数
function sortName(arr,eachName){
	arr.forEach(function(item){
		let temp=item[eachName];
		item.sortName=temp;
	});
	let resultArray = arr.sort(
	    function compareFunction(param1, param2) {
	        return param1.sortName.localeCompare(param2.sortName,"zh");
	    }
	);
	return resultArray;
};

arr为传入的需要排序的数组,那么eachName是什么呢?
我这里做这个处理是因为,我们前端通过api向后台拿到的数据,可能里面有name名字,可能有age年龄,可能有time时间,很多很多种类别,我们到底要根据那种来排序呢?这个eachName就是指定根据那个类别来排序的作用。
比如:当前我的数组如下:

 var arr=[
 	{
 		name:"啊啊啊",
 		age:"12",
 		time:"2018-12-17 14:15"
 	},
 	{
 		name:"额额额",
 		age:"11",
 		time:"2018-12-17 14:14"
 	},
 	{
 		name:"呵呵呵",
 		age:"13",
 		time:"2018-12-17 14:12"
 	}
 ]

1.当我函数写成sortName(arr,"name")的时候,他的结果是:
将数组按中文首字母排序
是按name在排序。
2.当我函数写成sortName(arr,"age")的时候,他的结果是:
将数组按中文首字母排序
是按age在排序。
3.当我函数写成sortName(arr,"time")的时候,他的结果是:
将数组按中文首字母排序
是按time在排序。
所以当需要排序的时候只需要传入按什么字段排序,就可以把当前数组按当前字段排序了。