function sort(arr) { let length = arr.length; let temp = null; // 使用冒泡排序法进行排序,优先按分数降序排,分数相同时按uid降序排 for (let i = 0; i < length - 1; i++) { for (let j = 0; j < length - 1 - i; j++) { if (arr[j].score < arr[j + 1].score) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } else if (arr[j].score == arr[j + 1].score && arr[j].uid < arr[j + 1].uid) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return arr; } let arr = [ {uid: 1001, name: '刘一', score: 86}, {uid: 1002, name: '陈二', score: 99}, {uid: 1003, name: '张三', score: 81}, {uid: 1004, name: '李四', score: 92}, {uid: 1005, name: '王五', score: 71}, {uid: 1006, name: '赵六', score: 81}, {uid: 1007, name: '孙七', score: 73}, {uid: 1008, name: '周八', score: 70}, {uid: 1009, name: '吴九', score: 63}, {uid: 1010, name: '郑十', score: 93}, ]; console.log('---------- 排序前 ----------'); for (let i = 0; i < arr.length; i++) { console.log('%s(%d):%d', arr[i].name, arr[i].uid, arr[i].score); } // 刘一(1001):86 // 陈二(1002):99 // 张三(1003):81 // 李四(1004):92 // 王五(1005):71 // 赵六(1006):81 // 孙七(1007):73 // 周八(1008):70 // 吴九(1009):63 // 郑十(1010):93 console.log('---------- 排序后 ----------'); let s = sort(arr); for (let i = 0; i < s.length; i++) { console.log('%s(%d):%d', s[i].name, s[i].uid, s[i].score); } // 陈二(1002):99 // 郑十(1010):93 // 李四(1004):92 // 刘一(1001):86 // 赵六(1006):81 // 张三(1003):81 // 孙七(1007):73 // 王五(1005):71 // 周八(1008):70 // 吴九(1009):63
Copyright © 2024 码农人生. All Rights Reserved