2014-12-17 19 views
9

Ho una matrice di oggetti annd che voglio ordinare per campo più profondo. Come posso fare questo?Js lodash ordina per campo più profondo

var array =  
    { 
    "id": 27, 
    "name": "La Primita Product", 
    "lottery": { 
     "id": 1, 
     "name": "La Primitiva", 
     "jackpotAmount": 10000, 
     } 
    }, 
    { 
    "id": 28, 
    "name": "La Primita Product", 
    "lottery": { 
     "id": 1, 
     "name": "La Primitiva", 
     "jackpotAmount": 10000, 
    } 

Come posso ordinare per lottery.jackpotAmount?

risposta

16

Per _.sortBy è possibile passare callback come secondo argomento, come questo

var array = [{ 
 
    "id": 27, 
 
    "name": "La Primita Product", 
 
    "lottery": { 
 
    "id": 1, 
 
    "name": "La Primitiva", 
 
    "jackpotAmount": 10000, 
 
    } 
 
}, { 
 
    "id": 28, 
 
    "name": "La Primita Product", 
 
    "lottery": { 
 
    "id": 1, 
 
    "name": "La Primitiva", 
 
    "jackpotAmount": 10, 
 
    } 
 
}]; 
 

 
array = _.sortBy(array, function (el) { 
 
    return el.lottery.jackpotAmount; 
 
}); 
 

 
console.log(array);
<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>