何かと不評であった整列方法をどうしようかなと思ってたが、ライブラリで良さそうなのがあったので入れてみることにした。
ファイル名順ではファイル名が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というライブラリを使いました。
サンプルにある通り、多次元配列の場合でもソートが可能なようである。
関数の中に関数を呼び出して実行しているのだが、どうもこのやり方は理解が追いつかない。
// 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