行排序
按字母、数字或长度排序一个列表,或随机打乱它。支持升序或降序,以及可选的去重。
删除重复行
删除空行
0 行。
工作原理
你的文本会按换行符拆分,并用下拉菜单选择的比较器进行排序。字母排序使用 localeCompare,即浏览器提供的语言感知比较方式,而不是原始字符编码。这个区别立刻就能看出来:简单粗暴的按码位排序会把所有大写字母排在所有小写字母之前(所以 "Zebra" 会排在 "apple" 之前),并且会打乱带重音符号的字符顺序。语言感知比较会按照词典的方式排列单词。
数字排序会用 parseFloat 解析每一行并比较数值,从而修正字符串排序中的经典问题——比如 "10" 会排在 "9" 前面,因为字符 "1" 比较小。不以数字开头的行会被当作 0 处理,并归到一起。长度排序比较字符数,随机打乱则使用 Fisher-Yates 算法,保证每种排列的概率相同。值得一提的是:流行的 sort(() => Math.random() - 0.5) 技巧会产生有偏差的打乱结果,因为排序算法假定比较器是一致的,而 Fisher-Yates 只遍历数组一次,每次都把当前元素与前面某个均匀随机选取的位置交换。
降序是先升序排列再反转,去重是在排序之后用 Set 完成的,因此只会去掉完全相同的重复项,空行则可以在这一切之前就被过滤掉。整个流程都是在你的标签页里对一段字符串进行数组操作:粘贴或排序时不会触发任何请求(可在开发者工具的网络面板中验证),所以排序姓名、邮箱或密钥列表永远不会涉及服务器。