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"}
]
使用方法:arr.sort((a,b) => {
return a.cat.localeCompare(b.cat); // 反向则调换a、b
})
localeCompare()属于js的一个方法,用本地特定的顺序来比较两个字符串、用于对比字符串之间的大小,根据比较的结果,返回值要么大于0要么小于0要么等于0。
结果如下:
结论:
1.比较内容中有数字则数字优先。按0-9顺序排序。
2.比较内容如果第一个字符是一样的(不区分大小写)如:A/a 则比较第二个字符的顺序来决定其排序,依次类推。
:A-Z顺序(区分大小写,且只比较一个选定字段)
使用方法:arr.sort((a,b) => {
return a.cat.charCodeAt(0) - b.cat.charCodeAt(0);
})
charCodeAt()属于js的一个方法,获取该字符的Unicode编码 A:65… / a:97…。
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
]
使用方法:arr.sort((a,b) => {
return a.cat.localeCompare(b.cat); // 反向则调换a、b
})
localeCompare()同样适用于中文内容排序
结果如下:
结论:
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