扩展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
  • asp之家 网络编程 m.aspxhome.com