数组对象排序

数组对象排序

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

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:"小明",];
		
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)))

相关文章

背景:计算机内部用补码表示二进制数。符号位1表示负数,0表...
大家好,我们现在来讲解关于加密方面的知识,说到加密我认为不...
相信大家在大学的《算法与数据结构》里面都学过快速排序(Qui...
加密在编程中的应用的是非常广泛的,尤其是在各种网络协议之...
前言我的目标是写一个非常详细的关于diff的干货,所以本文有...
对称加密算法 所有的对称加密都有一个共同的特点:加密和...