SOURCE

// 原始数据
const scores = [
    {
        "姓名": "韩建华",
        "分数": 4050
    },
    {
        "姓名": "赵萍",
        "分数": 4050
    },
    {
        "姓名": "马素莉",
        "分数": 4000
    },
    {
        "姓名": "王亚男",
        "分数": 3950
    },
    {
        "姓名": "王坤",
        "分数": 3900
    },
    {
        "姓名": "吴春军",
        "分数": 3800
    },
    {
        "姓名": "王纯刚",
        "分数": 3800
    },
    {
        "姓名": "叶腾飞",
        "分数": 3800
    },
    {
        "姓名": "李京",
        "分数": 3750
    },
    {
        "姓名": "冯瑞",
        "分数": 3700
    },
    {
        "姓名": "刁广智",
        "分数": 3700
    },
    {
        "姓名": "张彦龙",
        "分数": 3700
    },
    {
        "姓名": "杨亚丽",
        "分数": 3700
    },
    {
        "姓名": "吴春军",
        "分数": 3650
    },
    {
        "姓名": "惠方宏",
        "分数": 3650
    },
    {
        "姓名": "王枫",
        "分数": 3650
    },
    {
        "姓名": "卢俊",
        "分数": 3600
    },
    {
        "姓名": "张乐娟",
        "分数": 3600
    },
    {
        "姓名": "成小娟",
        "分数": 3600
    },
    {
        "姓名": "李京",
        "分数": 3600
    }
];

// 根据分数对数据进行排序
const sortedScores = scores.sort((a, b) => b.分数 - a.分数);

// 创建一个新数组来存储排名
const rankedScores = [];

// 初始化排名
let rank = 1;

// 遍历排序后的分数列表
for (let i = 0; i < sortedScores.length; i++) {
    // 如果当前对象的分数与前一个对象的分数相同
    if (i > 0 && sortedScores[i].分数 === sortedScores[i - 1].分数) {
        // 跳过排名的分配,保持排名为null
        rankedScores.push({ ...sortedScores[i], 排名: null });
    } else {
        // 如果分数不同,更新排名
        rankedScores.push({ ...sortedScores[i], 排名: rank++ });
    }
}

// 输出排名后的数据
console.log(rankedScores);
console 命令行工具 X clear

                    
>
console