2017-11-17 7 views
1

ネストされた配列オブジェクトを持つオブジェクトの配列を持っています。値に基づいてソートされた配列オブジェクト

[ 
    { 
     "neighborhoods": [ 
      { 
       "origin": "Kenwood", 
       "destination": "Portage Bay" 
      } 
     ] 
    }, 
    { 
     "neighborhoods": [ 
      { 
       "origin": "First Hill", 
       "destination": "Denny-Blaine" 
       } 
     ] 
    }, 
    { 
     "neighborhoods": [ 
      { 
       "origin": "Belltown", 
       "destination": "Eastlake" 
      } 
     ] 
    } 
] 

オブジェクトを原点の値に基づいてアルファベット順に並べ替える必要があります。これを行う最も効率的な方法は何ですか?

+0

stackoverflowの上の検索では、 'neighborhoods'が1つの以上のオブジェクトが含まれている場合origin'を使用すべきである'最も効率的... –

+1

でしょうか? 「近隣」がない場合はどうなりますか? –

答えて

0

ソート用の原点値を持つインデックスゼロのオブジェクトとプロパティを取ることができます。

var array = [{ neighborhoods: [{ origin: "Kenwood", destination: "Portage Bay" }] }, { neighborhoods: [{ origin: "First Hill", destination: "Denny-Blaine" }] }, { neighborhoods: [{ origin: "Belltown", destination: "Eastlake" }] }]; 
 

 
array.sort(function (a, b) { 
 
    function getValue(o) { return o.neighborhoods[0].origin; } 
 
    var aa = getValue(a), 
 
     bb = getValue(b); 
 

 
    return aa > bb || -(aa < bb); 
 
}); 
 

 
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

関連する問題