JS 函数sort
来源:互联网 发布:剑三妖孽成男脸型数据 编辑:程序博客网 时间:2024/06/01 09:03
<!DOCTYPE html><html> <head> <title>01_define.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> <script type="text/javascript"> console.log('根据函数的返回值来实现了函数的排序'); window.onload = show; //通过数字来排序 var as = [1,2,10,6,8,20]; console.log(as.sort()); //[1, 10, 2, 20, 6, 8] 是根据字符串来排序的,想要通过数字来排序需要传一个函数对象 console.log('11'+1); //111 console.log('11'-1); //10 动态语言的灵活性,当进行减法的时候会自动完成转化。 var sortByNumber = function(a,b){ return a-b; //所以这里可以自动完成转化,就算as中有字符串"10","22"之类的都可以自动转化。但是"12px"这种就不行了,可以用parseInt来转化return parseInt(a)-parseInt(b) } console.log(as.sort(sortByNumber)); //[1, 2, 6, 8, 10, 20] 这个函数对象会直接调用 //通过对象来排序 var Person = function(name,age){ this.name = name; this.age = age; } var p1 = new Person('evy',18); var p2 = new Person('lin',15); var p3 = new Person('hurk',20); var pp = [p1,p2,p3]; /** 通过以下两个方法虽然可以排序,但是需要为每一个属性都设置一个函数,显然不灵活 但是如果通过函数的返回值调用就不一样了 */ /* function sortByName(obj1,obj2){ if (obj1.name>obj2.name) { //因为上面是根据数字来排序,所以a-b就可以得到一个值,或者大于0,等于0,小于0,然后浏览器会根据这个值来排序.但是这里是通过对象来排序,obj1.name-obj2.name浏览器并不知道这个值是大于0的数还是小于0的数或者等于0,所以需要return一个数字来表明。 return 1; }else if(obj1.name==obj2.name){ return 0; }else{ return -1; } } function sortByAge(obj1,obj2){ return obj1.age-obj2.age; //因为obj1.age和obj2。age是两个数字,所以可以得到一个值,并且可以知道这个值是不是大于0的数 } */ //pp.sort(sortByAge); //会自动执行sortByAge这个方法(注:事件xx.onclick=init、xx.onmouseover=init等等和window.onload=init都可以直接调用init()函数) //pp.sort(sortByName); 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; } pp.sort(sortByProperty('age')); function show(){ var content = document.getElementById('content'); for ( var int = 0; int < pp.length; int++) { content.innerHTML += pp[int].name+','+pp[int].age+'<br/>'; } // } </script> </head> <body> This is my HTML page. <br> <span id="content"></span> </body></html>
阅读全文
0 0
- js函数 sort()
- JS 函数sort
- 关于js sort()函数
- JS sort函数的应用
- js 数组排序函数sort
- JS数组sort比较函数
- JS Array.sort()排序函数
- js中的sort函数的自定义函数
- JS数组排序函数sort()、reverse()
- Js数组排序函数sort()介绍
- Js数组排序函数sort()介绍
- Js数组排序函数sort()介绍
- Js数组排序函数sort()介绍
- js sort
- 深入探讨JS中的数组排序函数sort()和reverse()
- 深入探讨JS中的数组排序函数sort()和reverse()
- JS中的数组排序函数sort()和reverse()
- 深入探讨JS中的数组排序函数sort()和reverse()
- CentOS6.5 安装redis
- 责任链模式案例
- vjudge 200题纪念:Codeforces GYM 100726H: Settlers of Catan
- JS 函数transfer
- 耍假第一周 Q
- JS 函数sort
- STM32CubeMX
- JS 函数event
- win7连接虚拟机下面的linux(IP配置)
- nginx在mac上的安装笔记
- 关于SpringMVC之认识Validation
- JS 函数arguments
- Cookie深度解析
- 念念不忘,必有回响——记录人生的一段黑历史