处理空值的Javascript排序方法
我有一个对象列表,我想根据我知道可以使用排序方法的字段对对象进行排序。当比较字段有空值时,排序不会发生,如何解决此问题处理空值的Javascript排序方法,javascript,Javascript,我有一个对象列表,我想根据我知道可以使用排序方法的字段对对象进行排序。当比较字段有空值时,排序不会发生,如何解决此问题 var arrOfObj=[ { “姓名”:“扎克”, “年龄”:25岁 }, { “姓名”:“阿德尔”, “年龄”:38 }, { “名称”:空, “年龄”:38 }, { “姓名”:“Yori”, “年龄”:28岁 } ]; SortarofObjectsByParam(arrOfObj,简称“名称”); 警报(“升序:“+arrOfObj[0].Name+”、“+arr
var arrOfObj=[
{
“姓名”:“扎克”,
“年龄”:25岁
},
{
“姓名”:“阿德尔”,
“年龄”:38
},
{
“名称”:空,
“年龄”:38
},
{
“姓名”:“Yori”,
“年龄”:28岁
}
];
SortarofObjectsByParam(arrOfObj,简称“名称”);
警报(“升序:“+arrOfObj[0].Name+”、“+arrOfObj[1].Name+”、“+arrOfObj[2].Name”);
函数sortArrOfObjectsByParam(ArrtSort、strObjParamToSortBy){
if(sortAscending==undefined)sortAscending=true;//默认为true
如果(排序){
arrToSort.sort(函数(a,b){
返回a[strObjParamToSortBy]>b[strObjParamToSortBy];
});
}
否则{
arrToSort.sort(函数(a,b){
返回一个[StrobParamToSortBy]
您可以在comp func中处理空值:
arrToSort.sort(function (a, b) {
if (a[strObjParamToSortBy]==null) return 1
if (b[strObjParamToSortBy]==null) return 0
return a[strObjParamToSortBy] > b[strObjParamToSortBy];
});
我可以在排序列表的末尾获取空值的对象吗?谢谢。将第一个条件设置为
if(a[StrobParamToSortby]==null)返回-1代码>很抱歉,结果中没有显示多个空对象,只有一个来了jsfiddle.net/nQkBj工作正常,但结果中只显示一个空对象。我误解了您的问题。。。我更新了fiddle以包含两个空值。我还将警报更改为包含数组中的所有元素。两个空值都显示在末尾。
arrToSort.sort(function (a, b) {
if (a[strObjParamToSortBy]==null) return 1
if (b[strObjParamToSortBy]==null) return 0
return a[strObjParamToSortBy] > b[strObjParamToSortBy];
});