JavaScript 字符串数组排序

2018-06-04 16:24:57 +08:00
 fuwu1245

RT 要求

  1. 数组的每一个元素都为字符串 举例

  2. 顺序为 "" >特殊字符 > 数字 > 大写字母 > 小写字母 > 汉字 其中特殊字符按照 Unicode 码排序, 数字按照从小到大的顺序,大小写字母按照字母表排序 汉字按照拼音来排序 "" 指的是空字符串

举例

let arr = ["_A001", "_a001", "A001", "B001", "C001",  "骑士", "火箭",  "", "a001", "b001", "z001", "z002", "123", "455", "566"];
//期望结果
// ["", "_A001", "_a001", "123", "455", "566", "A001", "B001", "C001",  "a001", "b001", "z001", "z002",  "火箭", "骑士"]

自己用了Array.prototype.sort写的, 对汉字使用localeCompare函数比较, 对数字及其他,使用默认的规则, 却发现456老是排在123的前面 无奈了...

1746 次点击
所在节点    问与答
2 条回复
fuwu1245
2018-06-05 15:06:11 +08:00
自问自答一下..
https://github.com/haboll/sort
参考上述 repo 写了一个排序算法
有兴趣的人可以参考一下~
fuwu1245
2018-06-07 14:24:17 +08:00
...为什么没人愿意回答这个问题?
是因为太基础了么..

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/460273

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX