中文排序不正确,手动修正的方法

中文的数组进行排序,并不是按拼音首字母进行排序,如下:

var arr = ['中','梁','丽','彬','A','B','E'];
arr.sort(); // 结果: ["A", "B", "E", "中", "丽", "彬", "梁"]

这并不是我们想要的,因为明明是Z开头的,在这里我想它排在最后

解决办法:stringObject.localeCompare()方法,如下:

var arr = ['中','梁','丽','彬','A','B','E'];
arr.sort(function (a, b) {
  return a.localeCompare(b)
}) // 结果: ["彬", "丽", "梁", "中", "A", "B", "E"]

如果你想把英文排到前面来,在排序里加多个判断即可。

参考:

http://www.mzan.com/article/32828176-vue-js-orderby-national-characters.shtml

http://www.w3school.com.cn/jsref/jsref_localeCompare.asp

若您觉得我的博文对您有帮助,欢迎点击下方按钮对我打赏
打赏