2016-04-13 2 views
9

Sto usando v4.11.0. Desidero ordinare gli oggetti in base alla proprietà milliseconds. Ecco la matrice:ordine di lodash sulla proprietà nidificata

[ 
    { 
     "name": "bug12755.xml", 
     "list": "bugs42", 
     "start-date": "2015-09-14", 
     "age": { 
      "text": "7 months", 
      "milliseconds": 18381227304 
     } 
    }, 
    { 
     "name": "bug12922.xml", 
     "list": "bugs42", 
     "start-date": "2015-08-27", 
     "age": { 
      "text": "8 months", 
      "milliseconds": 19936427304 
     } 
    }, 
    { 
     "name": "bug13183.xml", 
     "list": "bugs50", 
     "start-date": "2015-08-27", 
     "age": { 
      "text": "8 months", 
      "milliseconds": 19936427305 
     } 
    } 
] 

mi manca qualcosa di fondamentale sulla funzione iteratee. Ho questo ma non sembra ordinare l'array. Grazie in anticipo!

_.orderBy(list, function(item) { 
      return item.age.value; 
     }, ['desc']); 

risposta

10

Sembra che si stia ordinando dalla proprietà value.

u.orderBy(list, function(e) { return e.age.milliseconds}, ['desc']); 
+0

Fare attenzione a chiunque si metta in ordine con le lettere. Lodash non esegue l'ordinamento naturale sulle lettere https://stackoverflow.com/questions/37848030/lodash-how-to-do-a-case-insensitive-sorting-on-a-collection-using-orderby – steampowered