javascript 函数2——对象排序

<!DOCTYPE html>
<html>
<head>
    <title>javascript排序</title>
    <meta charset="UTF-8">

</head>
<body>
<div id="person"></div>

<script type="text/javascript">
    //        //根据数字进行函数的排序
    //        function sortByNum(a,b){
    //            return a-b;
    //        }
    //        var as = [1,2,"11","33","12",190];
    //        //对于js而言,默认是按照字符串来实现排序的
    //        as.sort(sortByNum);
    //        alert(as);

    //测试根据对象排序
    function Person(name,age){
        this.name = name;
        this.age = age;
    }
    var p1 = new Person("c",23);
    var p2 = new Person("a",53);
    var p3 = new Person("b",15);

    var ps = [p1,p2,p3];
    ps.sort(sortByProperty("age"));

    function show(){
        var p = document.getElementById("person");
        for(var i=0;i<ps.length;i++){
            p.innerHTML+=ps[i].name+","+ps[i].age+"<br/>";
        }
    }

    /**
     * 使用以下方法来处理排序,带来的问题是需要每一个属性都设置一个函数,显然不灵活
     * 但是如果通过函数的返回值调用就不一样
     * @param obj1
     * @param obj2
     * @returns {number}
     */

    function sortByProperty(propertyName){
        var sortFun = function(obj1,obj2){
            if(obj1[propertyName] > obj2[propertyName]){
                return 1;
            }else if(obj1[propertyName] == obj2[propertyName]){
                return 0;
            }else{
                return -1;
            }
        }

        return sortFun;

    }

    function sortByName(obj1,obj2){
        if(obj1.name > obj2.name){
            return 1;
        }else if(obj1.name==obj2.name){
            return 0;
        }else{
            return -1;
        }
    }

    function sortByAge(obj1,obj2){
        return obj1.age-obj2.age;
    }

    show();

    </script>

    </body>
</html>

  

时间: 2024-10-06 20:43:25

javascript 函数2——对象排序的相关文章

python之attrgetter函数对对象排序

1 # 使用attrgetter函数对对象排序 3 # attrgetter处理对象,itemgetter处理序列 4 5 from operator import attrgetter 6 7 8 class user(): 9 def __init__(self, name, age): 10 self.name = name 11 self.age = age 12 13 def __repr__(self): 14 '''定义该对象需要输出时的字符串格式''' 15 return sel

漫话javascript函数与对象的关系

javascript函数与对象的关系 一直觉得红宝书中的一句话特别经典"函数是对象,函数名是引用",揭示了函数就是对象的本质: 在javascirpt中有一类数据类型,我们通常称之为简单的数据类型,包含了常见的数字(Number),字符串(String),布尔值(true,false),以及常常让人难以琢磨和始料未及的null,undefined:除了这些之外的其他所有值我们都可以成为对象,虽然上述的几种简单的数据类型拥有方法或属性:但是他们不是可变的:在<javascript语

JavaScript函数和对象提高!!!!!!

JavaScript函数和对象提高!!!!!! 主要内容介绍 函数 函数的概念 函数的参数 函数的返回值 函数的作用域 变量提升和函数提升 函数参数传递方式 对象 什么是JavaScript对象 创建对象的两种方式 对象属性的基本操作 创建自定义对象 函数的4种调用方式(简单介绍) 一.函数 函数小测验 函数复习测试题 1.1 函数基本概念 1.1.1 什么是函数 函数是定义一次但可以调用或执行任意多次的一段JavaScript代码. 函数也叫做方法(了解概念) 当一个函数在一个对象上被调用的时

javascript 函数与对象

javascript中的函数是非常重要的概念,也是比较难于理解的一个知识点! 下面就来聊聊函数: JS基于对象:什么是基于对象呢?简单的说所有代码都是"对象"; 比如函数: function person(){ } person();//1 调用函数; 比如变量: var  x=5; x=6     // 2 重新为x赋值; 上面的函数和变量都是对象:所有的函数都是Function类的对象,x是Number类的对象.相当于 var x=new Number(5): 注意: functi

2015第37周五javascript函数arguments对象巧用一

Javascript函数的一个巧妙利用:假定action中有一个JSONObject类型的对象data,其值有可能为空,则前台JSP页面的JS代码中想直接通过EL表达式,即${data}的形式访问对象的值,则可能会因为data对象为空导致JS预处理错误,如JSP中有这样的代码,var obj=${data};,则当后台data为null时前台页面会变成var obj=;进而页面报错终止运行.有人想通过类似 var obj=('${data}'==''?{}:${data})来解决,但该代码依旧编

【JS小技巧】JavaScript 函数用作对象的隐藏问题

用户反馈 @消失的键盘 在论坛反馈了一个问题,在 AppBoxMvc 中的 Title 模型中,如果将 Name 属性改名为小写的 name 属性,就会报错: 因为这是一个 ASP.NET MVC 的项目,而这个属性是通过 TextBoxFor 渲染到页面上的,因此 name 会生成为 DOM 节点的 id 属性: F.SimpleForm() .ID("SimpleForm1") .ShowBorder(false) .ShowHeader(false) .BodyPadding(1

__x__(63)0925第十天__ JavaScript 函数 上下文对象 原型对象

解析器在每次调用函数时,都会传递两个隐含参数: this    上下文对象 根据函数调用方式的不同,this 指向不同的对象 当作为普通函数调用时,this 指向全局对象 window 当作为对象的方法被调用时,this 指向调用该方法的对象 当作为构造函数调用时,this 指向创建的新对象 构造函数 出现的原因:由于目前为止,我们的对象都是用 new Object() 创建的,所以都是 Object 类的对象,不好区分...最好有个 Person 类,Animal 类 new Person()

key值为数字字符的对象,按数字大小顺序排序|自定义obj.sort函数|为对象排序

var helper = { sort:function(data){ //{“20141216”:{},“20141217”:{}}按大小排序, var arr1 = [],arr2=[],self = this; for(var key in data){ arr1.push(key); } arr1.sort(); for(var i=0;i<arr1.length;i++){ var date = arr1[i]; var o = self._clone(data[date]); o.d

javascript数组对象排序

javascript数组对象排序 JavaScript数组内置排序函数 javascript内置的sort函数是多种排序算法的集合 JavaScript实现多维数组.对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序. sort() 方法用于对数组的元素进行排序.语法如下: ArrayObject.sort(order); 测试A: var mm=[1,4,0,6,3,1,2]; mm.sort(); alert(mm);//0 1 1 2 3 4 6 返回值为对数组的引