漢字陣列排序及如何檢測漢字

2022-02-11 10:21:06 字數 709 閱讀 2277

最近接觸了一道有意思的題目,就是單擊**的表頭,根據表頭的那一欄進行排序。恰好有一欄的資料全部是中文漢字,如果僅僅對於漢字陣列使用預設的sort排序,那麼是針對漢字的unicode值進行比較排序,結果肯定與我們習慣的根據漢字的拼音排序大不相同。但是對於乙個簡單易用的程式而言,沒有必要寫個複雜的演算法來將漢字轉化為拼音,然後在進行ascii碼值比較,代價有些大,幸好,js中有乙個函式可以基本解決我們的問題,那就是localcompare函式。

localcompare函式在w3c規範上是這樣定義的:

用本地特定的順序來比較兩個字串。localecompare() 方法提供的比較字串的方法,考慮了預設的本地排序規則。ecmascript 標準並沒有規定如何進行本地特定的比較操作,它只規定該函式採用底層作業系統提供的排序規則。

可以這樣使用:

str.localcompare(s);

返回-1,則strs。

這樣,針對漢字陣列,我們就很容易來實現本地化比較。

chs.sort(function

(a,b));

由於漢字在當前的系統中都是unicode編碼,因此可以使用unicode碼值來判斷是否是漢字。漢字在unicode的範圍是\u4e00-\u9fff,因此可以使用正則來判斷。

function

checkchinese(obj,val)

帶漢字陣列字串大小過濾排序

const data1 中英文可用。data1.sort a,b a.name.localecompare b.name 注意,filter不會改變原陣列,sort改變原陣列 以下做過濾排序,不改變原陣列,需要接收 公升序 const resetdata data1.filter item item...

陣列及排序案例

陣列 若干個相同型別的變數在記憶體中有序的儲存的集合。include include intmain printf d n sizeof nums int length sizeof nums sizeof nums 0 計算陣列的長度 for int i 0 i length i printf n...

陣列及氣泡排序

氣泡排序 陣列中可以存放多個值。bash shell 只支援一維陣列 不支援多維陣列 初始化時不需要定義陣列大小 與大部分程式語言類似,陣列元素的下標由0開始。方法一 陣列名 value0 value1 value2 方法二 陣列名 0 value 1 value 2 value 下標 方法三 列表...