javascript(jquery)で配列の中を以下のような順番でソートしたいです。
A1-1
A1-3
A1-3-1
A1-4
A2
A4-1
A6-3
A13-1
A13-2
A13-3
A13-11
A13-14
A51-2
しかし文字列の比較を用いてソートすると以下のようになってしまいます。
A1-1
A1-3
A1-3-1
A1-4
A13-1
A13-11
A13-14
A13-2
A13-3
A2
A4-1
A51-2
A6-3
最初のような形でソートするにはハイフンで文字列を区切ってそれぞれを数値に変換して比較するしかないのでしょうか。
現在のソートの処理は以下の通りです。

sortedAlphabetListData.sort(
  function(a,b){
    if( a[0] < b[0] ) return -1;
    if( a[0] > b[0] ) return 1;
    return 0;
  }
);

コメントいただいた中で、自然順アルゴリズムというものが実現したいものに近いことがわかりました。
https://gist.github.com/think49/660141
こちらのサイトのライブラリを使ってみたのですが、A23,A3-1という順番で表示されてしまいます。A3-1が先に来てほしいです。
https://stackoverflow.com/questions/2802341/javascript-natural-sort-of-alphanumerical-strings
ここのサイトを参考に、以下のようにコードを修正しました。ただし、この方法はIE11以上でないと動かない ですしSafariでは動かないので使えません。(今回はIE9以上をサポートする必要があります。)

var collator = new Intl.Collator(undefined, {numeric: true, sensitivity: 'base'});
var sortedAlphabetListData = alphabetListData.sort(collator.compare);

このようにしたところ、以下のようにA1-3-1とA1-3が逆になります。
A1-1
A1-3-1
A1-3

以上、宜しくお願い致します。