js 根据对象数组中的属性进行排序

var arr = [
    {name:‘a‘,age:9},
    {name:‘b‘,age:12},
    {name:‘c‘,age:8}
];

 arr.sort((a,b)=>{
	return a.age -  b.age
  });
function compare(property){
    return function(a,b){
        var value1 = a[property];
        var value2 = b[property];
        return value1 - value2;
    }
}
console.log(arr.sort(compare(‘age‘)))
 * 使用例子:newArray.sort(sortBy(‘number‘,false)) //表示根据number属性降序排列;若第二个参数不传递,默认表示升序排序
     * @param attr 排序的属性 如number属性
     * @param rev true表示升序排列,false降序排序
     * */
    sortBy: function(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;
        }
    }

  

原文地址:https://www.cnblogs.com/huanhuan55/p/11511119.html

时间: 2024-10-16 16:34:39

js 根据对象数组中的属性进行排序的相关文章

js判断对象数组中是否存在某个对象

1. 如果要判断数组中是否存在某个元素的话很好判断,直接用数组的indexOf方法就好,存在返回当前索引不存在返回-1 var arr=[1,2,3,4] arr.indexOf(3) // 2 arr.indexOf(5) // -1 2. 要只是判断的话是可以遍历后判断对象的属性是否相同的,像这种: arr.forEach(item=>{ if(item.name=='Alex'){ alert('存在这个元素'); } }) 3. 但实际中往往是需要动态添加或删除对象或元素的,用这个方法的

对JavaScript对象数组按指定属性和排序方向进行排序

引子 在以数据为中心的信息系统中,以表格形式展示数据是在常见不过的方式了.对数据进行排序是必不可少的功能.排序可以分为按单个字段排序和按多个字段不同排序方向排序.单字段排序局限性较大,不能满足用户对数据的关注点变化的需求,而多字段排序就可以较好的弥补这个缺陷. 多字段排序,实现的方式从大的层面上可以分为后端实现和前端实现. 后端排序 后端实现排序可以在数据库层面实现或者在应用程序层面实现. 数据库层面实现多字段排序非常简单,使用SQL的排序指令“Order By”即可——Order By fie

js如何删除数组中的第一个元素

js如何删除数组中的第一个元素:下面介绍一下如何利用javascript删除数组中的第一个元素,代码如下: var arr=["蚂蚁部落","青岛市南区",2,"antzone"]; console.log(arr); arr.shift(); console.log(arr); 以上代码可以删除数组中的第一个元素,具体可以参阅javascript的Array对象的shift()方法一章节. 原文地址是:http://www.softwhy.co

js面对对象编程(二):属性和闭包

上篇博客中讲解了一些js对象的基本概念和用法,这篇博客讲解一下js属性方面的:公有属性,私有属性,特权方法. 如果学过java,公有属性,私有属性,特权方法(即可以访问和设置私有属性的方法)一定很熟悉,那么让我们来看看在js里如何实现呢? 1.公有属性 首先看公有的第一层意思是可以被大家所访问的,对外开放的属性,是相对于私有属性而言的: function Person(name,age){ this.name=name; this.age=age; this.getName=function()

数组内的对象按照2个属性进行排序

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> 数组内的对象按照2个属性进行排序(先按time从大到小排序,再按weight从大到小排序),请查看控制台看输出结果:<br/> var array = [<br/>

js如何删除数组中重复的值

js如何删除数组中重复的值:有时候需要删除数组中重复的元素,下面是分享一下常用的代码,希望能够给需要的朋友带来一定的帮助.代码实例如下: Array.prototype.deleteEle=function() { var obj={}; var newArr=[]; var i,j; for(i=0;i<this.length;i++) { if(typeof(obj[this[i]])=="undefined") { obj[this[i]]=""; }

react找到对象数组中指定的值

找到对象数组中指定的值var array = [            { label: "Custom", value: "0" },            { label: "Admin", value: "1"}        ]要找到array中value为0的label值var a = array.find(item => item.value == 0);var label = a.label; 原文地址:h

关于ivx中将对象数组的某一列添加到另一对象数组中的经验总结

在这个demo中我们要做的就是点击按钮Click后将原始对象数组中的姓名列和性别列的添加到新的对象数组中.1.首先给按钮添加一个点击事件,然后动作的对象选择新的对象数组,执行的动作选择从另一对象数组添加列.2.对象数组一栏选择原始对象数组:列名一栏,如果只是添加一列可以直接填入列名,如果是多个列可以用英文逗号将列名隔开或者采用数组格式.3.最后我们可以在前台初始化时和点击按钮添加列后都打印一下新的对象数组的值看一下结果.前台初始化时新的对象数组是空的,点击按钮后原始对象数组的姓名列和性别列则已经

PHP 使用用户自定义的比较函数对数组中的值进行排序

原文:PHP 使用用户自定义的比较函数对数组中的值进行排序 usort (PHP 4, PHP 5) usort —      使用用户自定义的比较函数对数组中的值进行排序 说明 bool usort        ( array &$array       , callable $cmp_function       ) 本函数将用用户自定义的比较函数对一个数组中的值进行排序.如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数. Note: 如果两个成员比较结果相同,则它们在排