KDP(電子出版)のメモ 急急如律令

Amazon Kindleダイレクト・パブリッシングでの電子出版や電子書籍の作成販売について、文章やイラストの作成や編集方法について書いています。

JavaScriptで自然順ソート

  何かと不評であった整列方法をどうしようかなと思ってたが、ライブラリで良さそうなのがあったので入れてみることにした。

 ファイル名順ではファイル名が1、3、11だと 1、11、3と整列されるので001、003、011のように数字の桁合わせをする必要があった。ただ、このままだと直感に反するので、使っているとイラッとする。

1.jpg
2.jpg
3.jpg
4.jpg
11.jpg
を整列すると

1.jpg
11.jpg
2.jpg
3.jpg
4.jpg

となってしまう。

 それを自然ソートするためにnatsortというライブラリを使いました。

github.com

サンプルにある通り、多次元配列の場合でもソートが可能なようである。

 関数の中に関数を呼び出して実行しているのだが、どうもこのやり方は理解が追いつかない。

// sort with object array
var objArr = [
{ val: 'B' },
{ val: 'a' },
{ val: 'D' },
{ val: 'c' }
];

var sorter = natsort();

objArr.sort(function(a, b) {
return sorter(a.val, b.val);
});

桁あわせ

 ファイル名の先頭に0がついていないのとついているのを簡単に書き換えるツールがある。このソフトでサンプルを作って、チェックした。

1.jpg、11.jpg、2.jpg
こういうファイルが
01.jpg、02.jpg、11.jpg

Flexible Renamerというソフトで、

「数値の整理」から「先頭からn番目の数値の桁合わせ」桁数を1にすると先頭に0がつかなくなり、2にすると2桁になる。forest.watch.impress.co.jp

days-of-programming.blogspot.com

kyukyunyorituryo.github.io