当数据包含空值时,如何按长度对 Antd table 数据进行排序
How can sort Antd table data by length, when the data contain a null value
我想按数据的长度对 table 进行排序。但是会出现一些空值。
这是我的排序函数
sorter: (a, b) => a.rechargeType.length - b.rechargeType.length
存在空值时出现以下错误
TypeError: Cannot read property 'length' of null
你可以简单地做到这一点,
sorter: (a, b) => {
if(a && a.rechargeType && a.rechargeType.length && b && b.rechargeType && b.rechargeType.length) {
return a.rechargeType.length - b.rechargeType.length;
} else if(a && a.rechargeType && a.rechargeType.length) {
// That means be has null rechargeType, so a will come first.
return -1;
} else if(b && b.rechargeType && b.rechargeType.length) {
// That means a has null rechargeType so b will come first.
return 1;
}
// Both rechargeType has null value so there will be no order change.
return 0;
}
这样 null 值将排在最后。有关排序比较函数的 return 值的更多信息,您可以阅读 this.
我想按数据的长度对 table 进行排序。但是会出现一些空值。 这是我的排序函数
sorter: (a, b) => a.rechargeType.length - b.rechargeType.length
存在空值时出现以下错误
TypeError: Cannot read property 'length' of null
你可以简单地做到这一点,
sorter: (a, b) => {
if(a && a.rechargeType && a.rechargeType.length && b && b.rechargeType && b.rechargeType.length) {
return a.rechargeType.length - b.rechargeType.length;
} else if(a && a.rechargeType && a.rechargeType.length) {
// That means be has null rechargeType, so a will come first.
return -1;
} else if(b && b.rechargeType && b.rechargeType.length) {
// That means a has null rechargeType so b will come first.
return 1;
}
// Both rechargeType has null value so there will be no order change.
return 0;
}
这样 null 值将排在最后。有关排序比较函数的 return 值的更多信息,您可以阅读 this.