当属性不一致时,如何根据属性对 JavaScript 对象列表进行排序
javascriptweb developmentfront end technologyobject oriented programming更新于 2024/1/2 16:12:17
我们有一个包含各种对象的数组。此数组中的一些对象具有日期字段(基本上是从服务器返回的字符串,而不是日期对象),而其他对象则此字段为空。
要求我们必须将没有日期的对象显示在顶部,而那些有日期的对象需要按日期字段排序显示在它们后面。
此外,对于没有日期的对象,需要按字母顺序排序。
示例
const sorter = ((a, b) => {
if (typeof a.date == 'undefined' && typeof b.date != 'undefined') {
return -1;
}
else if (typeof a.date != 'undefined' && typeof b.date == 'undefined') {
return 1; }
else if (typeof a.date == 'undefined' && typeof b.date == 'undefined') {
return a.name.localeCompare(b.name);
}
else if (a.date == null && b.date != null) {
return -1;
}
else if (a.date != null && b.date == null) {
return 1;
}
else if (a.date == null && b.date == null) {
return 0;
}
else {
var d1 = Date.parse(a.date);
var d2 = Date.parse(b.date);
return d1 - d2;
}
});
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

