質問: 現在、List.jsを用いてリストの並び替えを行っております。 このとき、特定の並び順は固定したままその中で並び替えを行いたいと考えているのですが 実装方法はございますでしょうか。 ご存知の方がいらっしゃいましたら、ご助言を頂きたいです。 ------------------------------------------------------------------------------\ 例)以下の列を、小学校が上側・中学校が下側である状態を維持したまま名前順にソート ○並び替え前 ・C小学校 ・A小学校 ・B中学校 ・A中学校 ↓ ○並び替え後 ・A小学校 ・C小学校 ・A中学校 ・B中学校
回答: List.js List API Method sort ListAPIのソートメソッドのオプションを確認すると、 sortFunctionオプションが有りますので、 ユーザ定義の比較関数でソートが利用できるようです。 ``` sort(valueName, { order: 'desc', alphabet: undefined, insensitive: true, sortFunction: undefined }) ``` 比較関数は ・中学校と小学校だったら 小学校を上に ・同じ(小学校同士もしくは中学校同士)だった場合は 名前順で上に という比較定義にすれば大丈夫かと思います。 ちなみにソート関数のAPIは ソースコード を確認すると ``` function (itemA, itemB, options) ``` のようです。 これ以上はコーディング依頼になりそうなのでやめておきます。