gpt4 book ai didi

javascript - 对 JSON 数组对象进行排序

转载 作者:行者123 更新时间:2023-11-28 18:38:01 26 4
gpt4 key购买 nike

我有以下问题:我有这个 JSON 响应,例如:

[{
"titulo": "Materia",
"horaInicio": {
"h": "08",
"m": "00"
},
"horaFin": {
"h": "10",
"m": "00"
}
}, {
"titulo": "Materia2",
"horaInicio": {
"h": "7",
"m": "00"
},
"horaFin": {
"h": "11",
"m": "00"
}
}, {
"titulo": "Materia3",
"horaInicio": {
"h": "11",
"m": "00"
},
"horaFin": {
"h": "13",
"m": "00"
}
}]

我想使用 JavaScript 通过“horaInicio”对这个数组进行排序,我寻找了一些像这样的排序函数

function predicatBy(prop){
return function(a,b){
if( a[prop] > b[prop]){
return 1;
}else if( a[prop] < b[prop] ){
return -1;
}
return 0;
}
}

这适用于“标题”属性,但不适用于 horaInicio 和 horaFin。

有什么解决办法吗?

最佳答案

您可以通过直接访问属性对其进行排序。

var array = [{ "titulo": "Materia", "horaInicio": { "h": "08", "m": "00" }, "horaFin": { "h": "10", "m": "00" } }, { "titulo": "Materia2", "horaInicio": { "h": "7", "m": "00" }, "horaFin": { "h": "11", "m": "00" } }, { "titulo": "Materia3", "horaInicio": { "h": "11", "m": "00" }, "horaFin": { "h": "13", "m": "00" } }];

array.sort(function (a, b) {
return a.horaInicio.h - b.horaInicio.h || a.horaInicio.m - b.horaInicio.m
});

document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');

关于javascript - 对 JSON 数组对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36649384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com