【问题标题】:sorting json object based on attribute基于属性对json对象进行排序
【发布时间】:2014-01-15 07:15:52
【问题描述】:

我有一个包含名字、姓氏和年龄的 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>

【问题讨论】:

标签: javascript html


【解决方案1】:
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);

【讨论】:

  • 我喜欢这个解决方案。但是,有没有办法让它访问对象的“孙子”属性?例如 sortByKey(myArr, 'myList.myElement')
  • 有人能解释一下逻辑吗?
猜你喜欢
  • 1970-01-01
  • 2013-03-13
  • 2022-07-19
  • 1970-01-01
  • 2021-03-19
  • 2017-09-19
  • 2012-04-26
  • 2016-02-08
  • 1970-01-01
相关资源
最近更新 更多