js 二维数组排序

数组里面是数组排序

var aqiData = [
    ["北京", 90],
    ["上海", 50],
    ["福州", 10],
    ["广州", 50],
    ["成都", 90],
    ["西安", 100]
];
var result = aqiData.sort(function(a,b){
    return b[1] - a[1];
});

console.log(result)

数组里面是对象类型的

/**
 * @description: 降序 排序根据哪那个字段,适用于二维数组排序
 * @param {*}arr 要排序的数组
 * @param {*}key 需要排序的键名
 * @return {*}
 */
const downsort = (arr = [], key) => {
    let tmp = JSON.parse(JSON.stringify(arr)); //深拷贝一份
    tmp.sort(function(a, b) {
        //console.log('a',a)
        a = a[key];
        b = b[key];
        return b - a;
    });

    return tmp;
};


/**
第一个参数为数组,第二个为需要排序的键名
*/
let a = downsort([{'name':200},{'name':333},{'name':335},{'name':30},{'name':999}],'name')
console.log(a)

做个简单的封装,带有切隔数组前几位的功能



module.exports = {
    // 类似二维数组,里面是对象格式的
    // 需要根据哪个字段来排序
    // 排序取数组前几个值,0表示都保留
    downsort: (arr = [], key, num = 0) => {
        let tmp = JSON.parse(JSON.stringify(arr)); //深拷贝一份
        tmp.sort(function(a, b) {
            a = a[key];
            b = b[key];
            return b - a;
        });

        if (num > 0){
            tmp = tmp.slice(0,num)
        }

        return tmp;
    },
}
posted @ 2022-10-27 09:29  盘思动  阅读(486)  评论(0编辑  收藏  举报