数组对象排序

数组对象排序

这样的排序是有问题的,如果有两个值的排序是一样的,排序排出来的顺序就不正确

sortFun (attr,rev){
       //第二个参数没有传递 默认升序排列
       if(rev ==  undefined){
           rev = 1;
      }else{
           rev = (rev) ? 1 : -1;
      }
       return function(a,b){
           a = a[attr];
           b = b[attr];
           if(a < b){
               return rev _ -1;
          }
           if(a > b){
               return rev _ 1;
          }
           return 0;
      }
},

let arr=[
    {
        name:`一`,
        number:1,
    },
    {
        name:`二`,
        number:2,
    }
]

arr.sort(this.sortFun(`number`))

参考 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

使用下面这个方式排序

var sdts = [
	{name:"小明",age:10},
	{name:"小红",age:20},
	{name:"小花",age:40},
	{name:"小明",age:10},
	{name:"小红",age:20},
	{name:"小明",age:10},
	{name:"小红",age:20},
	{name:"小花",age:40},
	{name:"小明",age:10},
	{name:"小红",age:20},
	{name:"小花",age:40},
];
		
function compare(property,desc) {
	return function (a, b) {
		var value1 = a[property];
		var value2 = b[property];
		if(desc==true){
			// 升序排列
			return value1 - value2;
		}else{
			// 降序排列
			return value2 - value1;
		}
	}
}
// console.log(sdts.sort(compare("age",true)))
console.log(sdts.sort(compare("age",false)))

posted @   南风晚来晚相识  阅读(614)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示