扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
时间:2024-04-23 09:25:31
看了一段时间关于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菜鸟,如果有什么想法啥的,直接留言,相互交流一下
标签:OrderByAsc,OrderByDesc
0
投稿
猜你喜欢
python基础之局部变量和全局变量
2021-10-23 06:50:31
详解Python中元组的三个不常用特性
2021-09-02 05:49:35
Python-GUI wxPython之自动化数据生成器的项目实战
2021-06-08 14:43:18
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2023-06-23 09:35:59
python内置模块collections知识点总结
2023-10-27 19:37:08
关于MySQL自增ID的一些小问题总结
2024-01-22 18:52:56
conda查看、创建、删除、激活与退出环境命令详解
2022-02-25 19:11:09
详解python中的数据类型和控制流
2022-08-11 14:32:50
Mybatis update数据库死锁之获取数据库连接池等待
2024-01-26 20:40:10
js保留两位小数方法总结
2023-07-18 17:34:35
Python 常用 PEP8 编码规范详解
2022-09-03 06:21:12
Mysql双主配置的详细步骤
2024-01-28 14:21:49
python画图中文不显示问题的解决方法
2023-05-30 14:07:09
Linux下升级安装python3.8并配置pip及yum的教程
2022-03-08 13:17:06
python查看数据类型的方法
2021-11-12 03:42:17
IDA Pro 6.0使用Qt框架实现了跨平台的UI界面
2022-12-05 05:07:55
php 无法载入mysql扩展
2023-09-07 13:07:40
python中__slots__节约内存的具体做法
2023-04-10 16:28:34
Mysql中的Btree与Hash索引比较
2024-01-16 12:56:49
Mysql错误1366 - Incorrect integer value解决方法
2024-01-13 03:21:35