vue中一個數組按某個屬性排序


 

1、數值排序

// id為屬性名
this.tableList.sort(this.compare('id')) 

// 數值排序
        compare(property) {
            return function (a, b) {
                var value1 = a[property];
                var value2 = b[property];
                return value1 - value2;
            }
        },

2、中文排序

// data為數組,p為屬性名
        // 中文正向排序
        ForwardRanking(data, p) {
            for (var i = 0; i < data.length - 1; i++) {
                for (var j = 0; j < data.length - 1 - i; j++) {
                    var dd = (data[j][p].localeCompare(data[j + 1][p], "zh"));//1---前者往后移,-1===位置不變
                    if (dd > 0) {
                        var temp = data[j];
                        data[j] = data[j + 1];
                        data[j + 1] = temp;
                    }
                }
            }
            return data;
        },
        // 中文反向排序
        ReverseRanking(data, p) {
            for (var i = 0; i < data.length - 1; i++) {
                for (var j = 0; j < data.length - 1 - i; j++) {
                    var dd = (data[j][p].localeCompare(data[j + 1][p], "zh"));//1---前者往后移,-1===位置不變
                    if (dd < 0) {
                        var temp = data[j];
                        data[j] = data[j + 1];
                        data[j + 1] = temp;
                    }
                }
            }
            return data;
        },

3、日期排序

// 日期正序
        SortRankingDate(data, p) {
            for (var i = 0; i < data.length - 1; i++) {
                for (var j = 0; j < data.length - 1 - i; j++) {
                    if (Date.parse(data[j][p]) > Date.parse(data[j+1][p])) {
                        var temp = data[j];
                        data[j] = data[j + 1];
                        data[j + 1] = temp;
                    }
                }
            }
            return data;
        },
        // 日期倒序
        ReverseRankingDate(data, p) {
            for (var i = 0; i < data.length - 1; i++) {
                for (var j = 0; j < data.length - 1 - i; j++) {
                    if (Date.parse(data[j][p]) < Date.parse(data[j+1][p])) {
                        var temp = data[j];
                        data[j] = data[j + 1];
                        data[j + 1] = temp;
                    }
                }
            }
            return data;
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM