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表. 比如,我们要查看每个人的多个分数,将该人对应的多个分数显示在一起,分数要 ...
随机推荐
- [app]Linux的setitimer和sleep冲突
在Linux中使用setitimer和sleep会冲突,二者都是用信号 碰上一个头疼的问题,主程序在sleep的时候,总是被开的一个timer的signal callback所影响, 每当timer的 ...
- yarn是什么?为什么会产生yarn,它解决了什么问题?以及yarn的执行流程
yarn是什么?为什么会产生yarn,它解决了什么问题? 答:yarn是作业调度和集群资源管理的一个框架. 首先对之前的Hadoop 和 MRv1 简单介绍如下: Hadoop 集群可从单一节点 ...
- 配置QQ企业邮箱小结
https://exmail.qq.com/login 1,注册管理员账号 2,添加域名 3.设置MX记录 记录类型选:MX记录 主机记录(RR):不填(非万网可以填写@) 记录值与MX优先级分别为: ...
- [mysql] mysql-myibatis-整理
==================================== insert ========================================== 语句1 <inser ...
- 跑在Docker下的RHEL7编译Java8源码包
1.运行Docker时需要加参数--cap-add=SYS_PTRACE,比如: docker run --cap-add=SYS_PTRACE --name buildjava8 -v /opt/r ...
- 关于MyEclipse项目的名字的修改对项目导入导出的影响
不要修改项目名字,不管是在MyEclipse中(.project文件里面的额name会变)还是在G:\MyEclipseData目录下(.project文件里面的额name不会变),否则导入的时候不能 ...
- 【转】C# 调用WebService的方法
很少用C#动态的去调用Web Service,一般都是通过添加引用的方式,这样的话是自动成了代理,那么动态代理调用就是我们通过代码去调用这个WSDL,然后自己去生成客户端代理.更多的内容可以看下面的两 ...
- SSH远程登录其他机器
常用格式:ssh [-l login_name] [-p port] [user@]hostname更详细的可以用ssh -h查看. 不指定用户: ssh 192.168.0.11 指定用户: ssh ...
- TextView不用获取焦点也能实现跑马灯
1.写一个类继承TextView package com.example.tt; import android.content.Context; import android.graphics.Rec ...
- TinyOS节点间通信相关接口和组件介绍
一.基本通信接口: Packet:提供了对message_t抽象数据类型的基本访问.这个接口的命令有:清空消息内容,获得消息的有效载荷区长度,获得消息有效载荷区的指针. //tos/interfa ...