5

その仕事をするarray.sort()で関数を使用する方法があるかもしれないと思ったとき、私はこれのためにバブルソートを書き始めていましたか?

これが私がソートしなければならないものの(うまくいけば)明確な例です:(ファイル名リスト)

var array = ['impression_page_1_12_juin','impression_page_1_13_juin','impression_page_2_12_juin','impression_page_2_13_juin']

ご覧のとおり、2つの異なる日付に2つの'page1'があり、各文字列の文字19と20のみが異なります。この2文字で並べ替えたいと思います。

Javascriptはそれを簡単に行うことができますか、それともサブストリングとバブルソートメソッドに戻る必要がありますか?

4

2 に答える 2

14

sort比較のための関数を使用してメソッドを使用します。

array.sort(function(x,y){
  var xp = x.substr(18, 2);
  var yp = y.substr(18, 2);
  return xp == yp ? 0 : xp < yp ? -1 : 1;
});
于 2012-06-13T14:23:14.973 に答える
3

はい、関数をarray.sortに渡すことができます。この関数は、関心のある基準に従って2つの文字列を比較します。javascriptで配列を並べ替える方法を参照してください。

文字列と数字には注意する必要があります。たとえば、はです'1_12' < '1_2'Trueそれらを数値として比較する必要がある場合は、文字列を分割し、各部分でparseIntを実行して、ペアワイズ比較を実装できます。

于 2012-06-13T14:20:22.810 に答える