Javascript 基于属性的json对象排序

Javascript 基于属性的json对象排序,javascript,html,Javascript,Html,我有一个包含firstname、lastname和age的json对象数组。我想根据年龄对数组进行排序 <!DOCTYPE html> <html> <body> <h2>Create Object from JSON String</h2> <p>Original name: <span id="origname"></span></p> <p>New name:

我有一个包含firstname、lastname和age的json对象数组。我想根据年龄对数组进行排序

<!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>

从JSON字符串创建对象
原名:

新名称:

年龄:

var雇员=[ {“名字”:“约翰”,“姓氏”:“多伊”,“年龄”:“24”}, {“姓氏”:“安娜”,“姓氏”:“史密斯”,“年龄”:“30”}, {“名字”:“彼得”,“姓氏”:“琼斯”,“年龄”:“45”}, ]; document.getElementById(“origname”).innerHTML=employees[0]。firstName+“”+employees[0]。lastName; //设置新名称 员工[0]。firstName=“吉尔伯特”; document.getElementById(“newname”).innerHTML=employees[0]。firstName+“”+employees[0]。lastName; document.getElementById(“age”).innerHTML=employees[0]。age;
功能排序键(数组,键){
返回array.sort(函数(a,b){
变量x=a[key];变量y=b[key];
回报率((xy)?1:0);
});
}
人员=sortByKey(员工,“年龄”);
console.log(人);

如果您没有JSON对象数组,此答案可能会帮助您检查此链接。它只是一个对象数组。JSON是对象的字符串表示形式。他们长得很像,但不一样。您可以使用
JSON.stringify(employees)将其转换为JSON。我喜欢这个解决方案。但是,有没有办法让它访问对象的“孙子”属性?例如sortByKey(myArr,'myList.myElement'),有人能解释一下逻辑吗?
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);