JS-比较函数中嵌套函数,可以排序【对象数组】
function createCompareFun(propertyName){
return function(object1,object2){
var value1 = object1[propertyName];
var value2 = object2[propertyName];
if(value1>value2){
return 1;
}else if(value1<value2){
return -1;
}else{
return 0;
}
};
}
var data = [{
name : "guo",
age : 23
},{
name : "zhao",
age : 28
},{
name : "zhang",
age : 24
}];
data.sort(createCompareFun("name"));
document.write("<hr/>用name排序,获得的第二位的元素的name值是:【"+data[1].name+"】");
data.sort(createCompareFun("age"));
document.write("<br/>用age进行排序,获得的最后一个元素的name是:【"+data[2].name+"】")
说明:createCompareFun()函数内部,嵌套一个内部函数,函数作为值被return返回,
内部函数传两个参数,并通过[]讲createCompareFun()函数的propertyName属性解析出来,在通过常规比较函数进行判断、比较。
在data中,定义了一个有三个元素的对象数组,最后调用createCompareFun()函数,并根据自己需要比较的属性来传参,函数对数组进行排序。得到比较的结果。
再加一个普通的比较函数
function compare(value1,value2){
if(value1>value2){
return 1;
}else if(value1<value2){
return -1;
}else{
return 0;
}
}
var arrM = [1,325,6,74,2]
console.log(arrM.sort(compare));
JS-比较函数中嵌套函数,可以排序【对象数组】的更多相关文章
- js 字符中 带 函数 再传对象参数
不替换 ( .replace(/\"/g, "\\\"") )则会有错误: Uncaught SyntaxError: missing ) after argu ...
- Python 调用JS文件中的函数
Python 调用JS文件中的函数 1.安装PyExecJS第三方库 2.导入库:import execjs 3.调用JS文件中的方法 Passwd = execjs.compile(open(r&q ...
- js中的函数,Date对象,Math对象和数组对象
函数就是完成某个功能的一组语句,js中的函数由关键字 function + 函数名 + 一组参数定义;函数在定义后可以被重复调用,通常将常用的功能写成一个函数,利用函数可以使代码的组织结构更多清晰. ...
- Javascript中的函数(Function)与对象(Object)的关系
今天我们来尝试理解Function和Object.因为这个里面有些人前期可能会搞糊涂.他们之间到底是什么关系.当然也不除外当初的我. 注意:官方定义: 在Javascript中,每一个函数实际上都是一 ...
- PHP中嵌套函数被调用时出现报错的问题
对于初入门的PHP新手来说,在学习关于PHP函数嵌套的知识点时可能会有一定的难度.比如有的朋友在练习PHP函数嵌套相关问题时,会遇到调用内部函数时就会出现报错的情况等. 那么本篇文章就为大家详细得分析 ...
- PHP:第三章——PHP中嵌套函数和条件函数
PHP中的嵌套函数: <?php header("Content-Type:text/html;charset=utf-8"); function A(){ echo &qu ...
- JavaScript中Function函数与Object对象的关系
函数对象和其他内部对象的关系 除了函数对象,还有很多内部对象,比如:Object.Array.Date.RegExp.Math.Error.这些名称实际上表示一个 类型,可以通过new操作符返回一个对 ...
- Javascript中的"函数是第一类对象(first-class object)"
本身这句话很好解释,函数有两个主要特点,援引自 陈新 译的<JavaScript模式>: 1.函数是第一类对象: 函数可以在运行时动态创建,还可以在程序执行过程中创建. 函数可以分配变量, ...
- MySQL中group_concat()函数的排序方法
group_concat()函数的参数是可以直接使用order by排序的.666..下面通过例子来说明,首先看下面的t1表. 比如,我们要查看每个人的多个分数,将该人对应的多个分数显示在一起,分数要 ...
随机推荐
- signal(SIGCHLD, SIG_IGN)和signal(SIGPIPE, SIG_IGN);
signal(SIGCHLD, SIG_IGN); //忽略SIGCHLD信号,这常用于并发服务器的性能的一个技巧 //因为并发服务器常常fork很多子进程,子进程终结之后需要//服务器进程去wait ...
- spring4.1.6配置quartz2.2.1(maven) <转>
Spring3.0不支持Quartz2.0,因为org.quartz.CronTrigger在2.0从class变成了一个interface造成IncompatibleClassChangeError ...
- chkconfig关闭必须的5个服务或者取出第一列
chkconfig 查找出第一列,开头不包含0的 chkconfig|egrep -o "^[^0]+"|egrep -v "sshd|network|crond|sys ...
- JavaScript(二):JavaScript语法及数据类型
一.JavaScript语法 1.区分大小写ECMAScript中的一切,包括变量.函数名和操作符都是区分大小写的.例如:text和Text表示两种不同的变量.2.标识符所谓标识符,就是指变量.函数. ...
- Hibernate- 条件查询
01.搭建开发环境 02.条件查询 package com.gordon.test; import java.util.List; import org.hibernate.Query; import ...
- android listview 总结
ScrollView与ListView冲突: public class MyExpandableListView extends ExpandableListView { public MyExpan ...
- selenium测试(Java)--鼠标事件(六)
鼠标操作: 1.右击 2.双击 3.拖到 4.悬停 1 package com.test.mouse; 2 3 import java.io.File; 4 5 import org.openqa.s ...
- Netstat命令(windows下)
功能: 一般用于检验本机各端口的网络连接情况. 例子:检查本机3389远程连接端口是否可用 netstat -nao|find "3389" 查看某进程使用的端口号: netst ...
- 用wamp5和ZendOptimizer搭建环境运行Discuz论坛
用wamp5和ZendOptimizer搭建环境运行Discuz论坛 用wamp5和ZendOptimizer搭建环境运行Discuz论坛 一: 环境: 1:Windows操作系统(Linu ...
- 根据多表条件更新表.............. 一条sql语句.............
CREATE TABLE a( NAME INT, age int ); CREATE TABLE b( height INT, weight int ); ,); ,); SELECT * FROM ...