js[中英文排序-获取中文拼音]

英文字母排序数组示例:

arr = [
 	  { cat: "Aqwe"},
      { cat: "gasd"},
      { cat: "Cwqe"},
      { cat: "csdw"},
      { cat: "Yqqa"},
      { cat: "csdw"},
      { cat: "dsdw"},
      { cat: "Dbdw"},
      { cat: "Dadw"},
      { cat: "1334"},
      { cat: "1234"},
      { cat: "9234"},
      { cat: "8Aae"}
]

1.按照英文字母顺序排序:A-Z顺序(不区分大小写)

使用方法:arr.sort((a,b) => {
return a.cat.localeCompare(b.cat); // 反向则调换a、b
})

localeCompare()属于js的一个方法,用本地特定的顺序来比较两个字符串、用于对比字符串之间的大小,根据比较的结果,返回值要么大于0要么小于0要么等于0。

结果如下:
js[中英文排序-获取中文拼音]_第1张图片
结论:
1.比较内容中有数字则数字优先。按0-9顺序排序。
2.比较内容如果第一个字符是一样的(不区分大小写)如:A/a 则比较第二个字符的顺序来决定其排序,依次类推。

2.按照英文字母顺序排序:A-Z顺序

:A-Z顺序(区分大小写,且只比较一个选定字段)
使用方法:arr.sort((a,b) => {
return a.cat.charCodeAt(0) - b.cat.charCodeAt(0);
})

charCodeAt()属于js的一个方法,获取该字符的Unicode编码 A:65… / a:97…。

本方式中只获取字符串第一个内容进行比较排序
结果如下:
js[中英文排序-获取中文拼音]_第2张图片

中文排序数组示例

arr2 = [
      // 首字母分别是
      { cat: "123"}, // 1
      { cat: "321"}, // 3
      { cat: "bzh"}, // b
 	  { cat: "拉皮条"}, // l
      { cat: "打火机"}, // d
      { cat: "一目连"}, // y
      { cat: "大狗子"},// d
      { cat: "xgz"},// d
      { cat: "小狗子"},// x
      { cat: "兔子"},// t
      { cat: "chaji"},// c
      { cat: "茶几"},// c
      { cat: "鬼切"},// g
      { cat: "不知火"} // b
]

3、中文顺序排序:A-Z顺序(localeCompare)

使用方法:arr.sort((a,b) => {
return a.cat.localeCompare(b.cat); // 反向则调换a、b
})

localeCompare()同样适用于中文内容排序

结果如下:
js[中英文排序-获取中文拼音]_第3张图片
结论:
1.比较内容中开头顺序有数字则数字优先。按0-9顺序排序。
2.比较内容中开头顺序有英文则放在最后,按a-z排序(不区分大小写)
3.中文内容将转换成拼音然后按照a-z排序:
上述:buzhihuo、chaji、dahuoji、dagouzi、guiqie、lapitiao、tuzi、 xiaogouzi、yimulian

获取中文的拼音数据

如:我是谁
则:返回 woshishui 或者wss
请到资源中下载一个文件然后引用即可
https://me.csdn.net/download/lxy869718069

你可能感兴趣的:(javascript)