Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理空值的Javascript排序方法_Javascript - Fatal编程技术网

处理空值的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];
    });