【发布时间】:2021-12-12 11:57:31
【问题描述】:
我是 JavaScript 新手,我正在做一些基本的练习。在我的代码中,我有一个保存在字符串中的 JSON。我想按年龄属性对其进行排序,默认情况下,在我的表中首先显示年长的员工。
var employees = '{"employees":[ {"name":"Lucas","surname":"White", "email":"email@gmail.com", "age":31, "work":{"Company":"userCompany", "role":"userRole"}, "car":[ {"brand":"userCar", "model":"userCar", "year":"userCar", "bollo":"userCar"}, ]},
{"name":"Mary","surname":"userSurname", "email":"email@gmail.com", "age":29, "work":{"Company":"userCompany", "role":"userRole"}, "car":[ {"brand":"userCar", "model":"userCar", "year":"userCar", "bollo":"userCar"} ]}, ]}'
我想过将 JSON 员工解析成一个对象,以便使用 JS 方法来比较它的值,但我认为我还没有正确的答案。
function compare(a,b) {
const obj = JSON.parse(employees);
if ( a.age < b.age ){
return -1;
}
else if ( a.age > b.age ){
return 1;
} else {
return 0;}
var compared = obj.compare();
console.log(compared);
}
或者...
function sortByAge(a,b){
const obj = JSON.parse(employees);
for(var i = 0; i < obj.employees.length; i++){
return parseInt (a.age) - parseInt (b.age);
}
var sortedByAge = obj.sortByAge();
console.log(sortedByAge);
}
我有什么遗漏吗?谢谢。
【问题讨论】:
-
如果你在循环中执行
return,循环将在第一次迭代时退出! -
你不需要
parseInt,你数据中的年龄值已经是数字了。
标签: javascript arrays json function sorting