2014-01-15 14 views
6

Ich habe JSON-Objekt-Array mit Vorname, Nachname und Alter. Ich möchte das Array nach Alter sortieren.Sortierung JSON-Objekt basierend auf Attribut

<!DOCTYPE html> 
<html> 
<body> 
    <h2>Create Object from JSON String</h2> 
    <p>Original name: <span id="origname"></span></p> 
    <p>New name: <span id="newname"></span></p> 
    <p>Age: <span id="age"></span></p> 

    <script> 
    var employees = [ 
     { "firstName" : "John" , "lastName" : "Doe" , "age":"24" }, 
     { "firstName" : "Anna" , "lastName" : "Smith" , "age":"30" }, 
     { "firstName" : "Peter" , "lastName" : "Jones" , "age":"45" }, 
    ]; 

    document.getElementById("origname").innerHTML=employees[0].firstName + " " + employees[0].lastName; 

    // Set new name 
    employees[0].firstName="Gilbert"; 
    document.getElementById("newname").innerHTML=employees[0].firstName + " " + employees[0].lastName; 

    document.getElementById("age").innerHTML=employees[0].age; 
    </script> 
</body> 
</html> 
+0

Vielleicht kann diese Antwort helfen Ihnen http://stackoverflow.com/questions/881510/jquery-sorting-json-by-properties –

+0

https://developer.mozilla.org/en- US/docs/Web/JavaScript/Referenz/Global_Objects/Array/sort – Prinzhorn

+0

überprüfen Sie diesen Link http://stackoverflow.com/questions/8175093/simple-function-to-sort-a-json-object-using-javascript –

Antwort

9
function sortByKey(array, key) { 
return array.sort(function(a, b) { 
    var x = a[key]; var y = b[key]; 
    return ((x < y) ? -1 : ((x > y) ? 1 : 0)); 
}); 
} 

people = sortByKey(employees, 'age'); 

console.log(people); 
+2

Danke, es hat funktioniert !!!! – MayurKode

+5

kannst du bitte logik erklären ??? – MayurKode

+0

Ich liebe diese Lösung. Gibt es jedoch eine Möglichkeit, auf ein "Enkel" -Attribut des Objekts zuzugreifen? Zum Beispiel sortByKey (myArr, 'myList.myElement') –

Verwandte Themen