由一排到十

用 JavaScript A 排到 Z 就簡單啦,中文數字一排到十又如何呢?

以下一個簡單嘅 case,搵唯一一個數字出嚟,用咩方法都得,下面就用咗 regular expression:

let sortorder = [/一/, /二/, /三/, /四/, /五/, /六/, /七/, /八/, /九/, /十/];
let array = ["第一部", "第三部", "第二部", "第五部", "第四部"]
array.sort((a, b) => sortorder.findIndex(regex => regex.test(a)) - sortorder.findIndex(regex => regex.test(b)));

如果我有條 array 係咁嘅樣,可以點 handle 呢?

let array = ["第一部 三三十", "第三部 一一", "第二部 十", "第五部 二二", "第四部 一一"]

我就梗係想佢排到咁啦:

["第一部 三三十", "第二部 十", "第三部 一一", "第四部 一一", "第五部 二二"]

喺呢個 case 直接拎第二隻字就搞掂

array.sort((a, b) => sortorder.findIndex(regex => regex.test(a.charAt(1))) - sortorder.findIndex(regex => regex.test(b.charAt(1))));

但如果有十一到十五咁點呢?一百二十一?一千零九十?我真係諗唔通。

呢度都有對中文數字比較嘅相關討論,方向主要係將中文化成阿拉伯數字再計數。但太長喇,我唔想睇(

只能說中華文化真係博大精深(

- 完 -