Javascript 基于属性的json对象排序
我有一个包含firstname、lastname和age的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:
<!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);