3

私はこのような配列を持っています

var Arr = [ 'h78em', 'w145px', 'w13px' ]

この配列を数値順にソートしたい

[ 'w13px', 'h78em', 'w145px' ]

通常の数値ソートには、この関数を使用します

var sortArr = Arr.sort(function(a,b){
     return a-b;
});

しかし、配列内の単語文字のため、この関数は機能しません

この配列をソートすることは可能ですか? 配列を分割/一致させるにはどうすればよいですか?

4

1 に答える 1

8

正規表現を使用して、並べ替え時にすべての文字を削除できます。

var Arr = [ 'h78em', 'w145px', 'w13px' ]​;
var sortArr = Arr.sort(function(a, b) {
    a = a.replace(/[a-z]/g, "");  // or use .replace(/\D/g, "");
    b = b.replace(/[a-z]/g, "");  // to leave the digits only
    return a - b;
});

デモ: http://jsfiddle.net/8RNKE/

于 2012-08-30T07:56:36.303 に答える