扩展js对象数组的OrderByAsc和OrderByDesc方法
看了一段时间关于js原型的知识,js的扩展方法是基于原型的,如Array.prototype.XXXX就是给Array扩展XXX方法,然后数组都能使用这个方法了。
在对象数组里面经常有根据属性来进行排序的,升序,降序的,于是自己就想写一个类似于C#里面的orderBy的方法,代码如下:
Array.prototype.OrderByAsc = function (func) {
var m = {};
for (var i = 0; i < this.length; i++) {
for (var k = 0; k < this.length; k++) {
if (func(this[i]) < func(this[k])) {
m = this[k];
this[k] = this[i];
this[i] = m;
}
}
}
return this;
}
Array.prototype.OrderByDesc = function (func) {
var m = {};
for (var i = 0; i < this.length; i++) {
for (var k = 0; k < this.length; k++) {
if (func(this[i]) > func(this[k])) {
m = this[k];
this[k] = this[i];
this[i] = m;
}
}
}
return this;
}
调用的方法如下:
var arr = [{ name: 'aaa', grade: 20 }, { name: 'ccc', grade: 30 }, { name: 'bbb', grade: 40 }];
var orderArr = arr.OrderByDesc(function (a) {
return a.grade;
});
然后输出一下,看一下结果吧:
for (var i = 0; i < orderArr.length; i++) {
document.write(orderArr[i].name);
}
本人js菜鸟,如果有什么想法啥的,直接留言,相互交流一下
转载于:https://www.cnblogs.com/a546558309/archive/2013/05/16/3081974.html
扩展js对象数组的OrderByAsc和OrderByDesc方法相关推荐
- js对象数组计算总计_如何计算数组中的对象
js对象数组计算总计 Knowing how to quickly iterate through an array and count objects is deceptively simple. ...
- js对象数组根据某一属性查找对象
js对象数组[{name: "zhangsan", age: 20}, {name: "lisi", age: 30}], 如果想查找name是zhangsan ...
- JS对象数组去重简单有效方法
I.输入 JS对象数组去重是业务经常遇到的方法,稍微简洁一点的方法,如下: var data = [{"id": 1, "name": "李四1&qu ...
- 前端:JS实现数组去重常用的六种方法介绍
今天给大家分享JS实现数组去重常用的六种方法,希望对大家能有所帮助! 定义变量 let arr = [20,6,13,20,100,8,13,11]; let newArr = []; 1.两层循环去 ...
- 两个对象数组去重的3种方法
两个对象数组去重的3种方法 前言 问题描述 解决方案一 解决方案二 解决方案三 前言 前段时间写过JavaScript数组去重最简单的 4 种方案,里面的数组元素是基本类型.本文要讲的数组元素是对象, ...
- 【小程序】【Tips】【前端】交互【后端】从Json对象数组里面获取数据的方法 - PHP - JS 的原生方法
小程序后端和前端之间是通过,json的格式来传数据的,那么,数据如何获取呢?这就分两个部分 1 就是后端到前端 后端我们考虑是PHP环境,前端是JS, 那么在JS里面,很简单: 比如,小程序一般在前端 ...
- js 对象深拷贝、对象数组深拷贝的几种方法总结
写前端的时候经常会遇到对象的拷贝,一般我们会用到深拷贝,深拷贝就是完完整整的将一个对象从内存中拷贝一份出来,放到另一块新开辟的内存中去.向下面这种赋值是浅拷贝,a.b都是对同一块内存进行引用,a.b哪 ...
- android 接收js对象数组,java怎么接收js 数组对象数组对象
java怎么接收js 数组对象数组对象 [2021-02-04 22:25:34] 简介: php数组转js数组对象的方法:首先获取[$arr]数组:然后使用函数[json_encode()]将数组 ...
- 一行代码完成js对象数组的深拷贝
1.对于普通数组(数组元素为数字或者字符串),深拷贝很简单,拷贝之后两个数组指针指向的存储地址不同,从而完成深拷贝 var _test = [1,2,3];//原数组 var _testCopy = ...
最新文章
- python的构建工具setup.py
- Matlab 坐标轴比例一致导致图形变形
- c++标准模板库STL【快速查找】【最全】【常用】【语法】
- 教你自己制作Vista与DOS双系统
- HDU 6168 Numbers 思维 水题
- 违规停放共享单车 319人被纳入限制骑行“黑名单”
- Git生成ssh密钥指定文件
- python字符串函数_python字符串函数
- 如何改善字幕组同学「为爱发电」的工作环境?
- 通过Socket configuration controls 获取网络设备地址
- md5加解密工具 java_MD5解密加密工具类
- RuntimeError: NCCL error in:XXX,unhandled system error, NCCL version 2.7.8
- linux学习之使用piranha配置高可用集群
- python爬股指期货数据_新浪期货数据接口API(实时数据/历史数据)
- 5分钟,教你创建在线聊天营销机器人
- GeeM2传奇引擎进入游戏出现白屏的解决办法
- QQ农场之舌尖上的美食(20210729~20211021)
- 4路服务器cpu位置,4路cpu服务器
- Win7 开机优化系列-上篇
- Azure Active Directory Powershell命令创建一个application以及App需要的权限
热门文章
- GA遗传算法(Genetic Algorithm)
- 每个Wi-Fi都有独一无二的IP地址吗?
- 浅谈帆软报表的权限授权,以便于二次开发
- JAVA将list2合并到list1_java如何将两个list合并的问题
- deeply understanding Binary tree--二叉树
- linux关闭io统计,linux 统计每个进程所占用的io数
- 软件度量五步法包括_软件交付效能度量——从吞吐量和稳定性开始
- java默认异常处理_spring boot 默认异常处理的实现
- 并注册烧写钩子 获取启动介质类型_PyTorch中对张量登记注册反向传播的钩子函数,并展示调用顺序...
- 机器学习之数据不平衡问题