2017-03-02 8 views
0

こんにちは皆私はオブジェクトの配列をアルファベット順に特定のプロパティ値で並べ替えることができるように関数が必要です。プロパティの配列の並べ替え

レッツは、私はこの配列を持っていると言う:

var myObj = [{Name: 'John'}, 
      {Name: 2.10}, 
      {Name: 'Andrew'}, 
      {Name: 10}, 
      {Name: 2.101} 
      ]; 

結果は 'アンドリュー'、 'ジョン'、2.10、2.101、10でなければなりません。私のプログラムでこのソートのbeacauseが必要ですNameプロパティは、 'John'またはIP(1.0.0.14のような)またはMACアドレス(97948453855)のどちらでもかまいません...

私はいくつかの並べ替えを管理しましたがそれは文字列と数字の両方に対して完全に機能するようには見えません。

ありがとうございました!

+1

あなたの並べ替えの根拠は何ですか?アルゴリズム? – mehulmpt

+0

あなたが試したことを示して、どこが間違っているかを確認できます。 – epascarello

+0

コードを入力してください。 –

答えて

3

文字列をチェックし、デルタを最初の結果部分として使用するか、または数値的なデルタか最後に文字列の比較を行うことができます。

var array = [{ Name: 'John' }, { Name: 2.10 }, { Name: 'Andrew' }, { Name: 10 }, { Name: 2.101 }]; 
 
      
 
array.sort(function (a, b) { 
 
    return (typeof a.Name === 'string') - (typeof b.Name === 'string') || a.Name - b.Name || a.Name.localeCompare(b.Name); 
 
}); 
 

 
console.log(array);

+0

完全に動作しますが、どうもありがとうございました! –