typescript数组按照元素的属性A存在则按照属性B排序,属性A不存在则按照属性C排序
时间: 2023-09-07 16:17:27 浏览: 64
可以使用 Array.prototype.sort() 方法进行排序,传入一个排序函数作为参数。排序函数的具体实现可以按照如下方式:
```
function sortArray(array) {
array.sort((a, b) => {
// 如果属性A存在,则按照属性A排序
if (a.hasOwnProperty("A") && b.hasOwnProperty("A")) {
if (a.A < b.A) {
return -1;
} else if (a.A > b.A) {
return 1;
}
} else if (a.hasOwnProperty("A") && !b.hasOwnProperty("A")) {
return -1;
} else if (!a.hasOwnProperty("A") && b.hasOwnProperty("A")) {
return 1;
}
// 如果属性A不存在,则按照属性C排序
if (a.hasOwnProperty("C") && b.hasOwnProperty("C")) {
if (a.C < b.C) {
return -1;
} else if (a.C > b.C) {
return 1;
}
}
// 最后按照属性B排序
if (a.B < b.B) {
return -1;
} else if (a.B > b.B) {
return 1;
}
return 0;
});
}
```
此函数会首先判断属性 A 是否存在,如果存在则按照属性 A 排序,如果不存在则按照属性 C 排序,最后按照属性 B 排序。注意在排序时要使用 hasOwnProperty() 方法进行属性的判断,避免出现不必要的错误。
阅读全文