2番目の数値が小さい順に、名前順でソートしたい。
ファイラーのようにフォルダの後にファイルが並ぶ。

配列の1番目の値が名前です。
二番目の値は0がフォルダ、1がファイルとして付けます。
次のコードを実行すると2番目の値に沿ってソートはされますが、配列の内容によっては名前順にソートされません。

var ary = [
    ['あ0', 0],
    ['b', 0],
    ['c.txt', 1],
    ['た', 0],
    ['e', 0],
    ['ぜ.txt', 1],
    ['a', 0],
    ['a.txt', 1],
    ['d', 0],
    ['あ', 0],
    ['c', 0],
    ['b.txt', 1],
];

ary.sort(function(a, b) {
  return (a[1] - b[1]) || (a[0] > b[0]);
});

for (var i = 0; i < ary.length; i++) {
  console.log('%d: %s', ary[i][1], ary[i][0]);
}

次の配列に差し替えるとうまくソートできました。

var ary = [
    ['あ0', 0],
    ['b', 0],
    ['c.txt', 1],
    ['た', 0],
    ['e', 0],
    ['ぜ.txt', 1],
    ['a', 0],
    // ['a.txt', 1],
    ['d', 0],
    ['あ', 0],
    ['c', 0],
    ['b.txt', 1],
];

アドバイスお願いします。