2016-04-13 14 views
9

Ich verwende v4.11.0. Ich möchte Objekte basierend auf milliseconds Eigenschaft sortieren. Hier ist das Array:lodash orderBy auf verschachtelte Eigenschaft

[ 
    { 
     "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 
     } 
    } 
] 

ich etwas Grundlegendes über die iteratee Funktion fehle. Ich habe das aber scheint das Array nicht zu sortieren. Danke im Voraus!

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

Antwort

10

Es scheint, dass Sie von der Eigenschaft value bestellen.

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

Seien Sie vorsichtig, wenn Sie mit Buchstaben sortieren. Lodash tut nicht natürliche Reihenfolge auf Buchstaben https://stackoverflow.com/questions/37848030/lodash-how-to-do-case-insensitive-sorting-on-a-collection-using-orderby – steampowered

Verwandte Themen