2017-12-26 9 views
1

は私が持っている配列:文字列の配列をjavaScriptの文字列の割合でソートする最も良い方法は何ですか?

["John (50%)", "Michael (10%)", "Amy (20%)", "Susan (100%)"] 

をそして私は少なくとも%への主要な%で応じてその配列をソートする必要があります。 そうだとしたらlodashを使うことができますが、それ以外にvanilla JSを使うだけです。

何が最良のアプローチになりますか?

最終的な結果は次のようになります。この問題に関する任意の啓発のために事前に

["Susan (100%)", "John (50%)", "Amy (20%)", "Michael (10%)"] 

感謝。

答えて

3

数値を取得し、値のデルタで降順ソートすることができます。

var array = ["John (50%)", "Michael (10%)", "Amy (20%)", "Susan (100%)"]; 
 

 
array.sort(function (a, b) { 
 
    function getValue(s) { return s.match(/\d+/) || 0; } 
 
    return getValue(b) - getValue(a); 
 
}); 
 

 
console.log(array);

+0

私は同意します。うまくやった! – Matt

0

次のことを試してみてください。

var data = ["John (50%)", "Michael (10%)", "Amy (20%)", "Susan (100%)"]; 
 
var res = data.sort(function(a, b){ 
 
    return b.match(/\d+/) - a.match(/\d+/); 
 
}); 
 
console.log(res);

関連する問題