2017-05-19 3 views
-4
{ 
    "services": [{ 
    "id": "b1", 
    "address": { 
     "location_id": "loc_b1", 
     "name": "hunupitiya-2", 
     "lon": "", 
     "lat": "" 
    }, 
    "size": [1700] 
    },{ 
    "id": "b2", 
    "address": { 
     "location_id": "loc_b2", 
     "name": "kelaniya-1", 
     "lon":"" , 
     "lat":"" 
    }, 
    "size": [2889] 
    }] 
} 

オブジェクトのコレクションが配列内にあります。このオブジェクトのコレクションをネストしたオブジェクトのプロパティ名に基づいてソートする必要があります。私が探しているプロパティはaddress.nameです)。上記は分割後の1と2です。 「 - 」だから私は何を達成しようとしていますが、私は31個のオブジェクトのように持って配列内の親オブジェクトのみを入れ子オブジェクトのプロパティで並べ替えます

{ 
    "services": [{ 
    "id": "b2", 
    "address": { 
     "location_id": "loc_b2", 
     "name": "kelaniya-1", 
     "lon":"" , 
     "lat":"" 
    }, 
    "size": [2889] 
    },{ 
    "id": "b1", 
    "address": { 
     "location_id": "loc_b1", 
     "name": "hunupitiya-2", 
     "lon": "", 
     "lat": "" 
    }, 
    "size": [1700] 
    }] 
} 

以下のようなオブジェクトのソートされた配列を返す関数で、私もせずにオブジェクトを持っているので、私は、番号を取得しようとしています小さなものから大きなものまで、そして残りのものを順番に並べ替えます。私はそれを動作させるためにjsfiddleを作成しました。

https://jsfiddle.net/cbjosk3g/

答えて

0

あなたは値を分割し、配列の第2の部分を取るソート機能を標準Array#sortを使用することができます。コンソールは、スニペット結果パネルを埋める作る上

var $scope = { services: [{ id: "b1", address: { location_id: "loc_b1", name: "hunupitiya-2", lon: "", lat: "" }, size: [1700] }, { id: "b2", address: { location_id: "loc_b2", name: "kelaniya-1", lon: "", lat: "" }, size: [2889] }] }; 
 

 
$scope.services.sort(function (a, b) { 
 
    return a.address.name.split('-')[1] - b.address.name.split('-')[1]; 
 
}); 
 

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

+0

ニース小さなトリック:) –

関連する問題