How to sort an array of structs in ColdFusion

后端 未结 10 1787
余生分开走
余生分开走 2020-12-17 10:00

I have an array of structs in ColdFusion. I\'d like to sort this array based on one of the attributes in the structs. How can I achieve this? I\'ve found the StructSort fun

10条回答
  •  被撕碎了的回忆
    2020-12-17 10:26

    Easy solution to sort an array of structures using more than one key using arraySort callback:

    It takes array of structs to be sorted as first parameter and array of structs in format of sortkey/sortorder pair as second parameter e.g. [{sortkey: 'FirstName', sortorder: 'asc'}, {sortkey: 'LastName', sortorder: 'desc'}].

    
        
        
        
    
        arraySort(
            aOfS,
            function (a, b) {
                for (var i = 1; i lte arrayLen(key_sortOrder); i = i + 1) {
                    var prop = key_sortOrder[i];
                    var key = prop.key;
                    var sortOrder = prop.sortOrder;
                    if (a[key] lt b[key]) {
                        if (sortOrder eq 'desc') {
                            return 1;
                        } else {
                            return -1;
                        }
                    }
                    if (a[key] gt b[key]) {
                        if (sortOrder eq 'desc') {
                            return -1;
                        } else {
                            return 1;
                        }
                    }
                }
                return 0;
            }
        );
    
        return aOfS;
    
        
    
    
    

    Simply call it with:

    
    

提交回复
热议问题