看了一段时间关于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方法相关推荐

  1. js对象数组计算总计_如何计算数组中的对象

    js对象数组计算总计 Knowing how to quickly iterate through an array and count objects is deceptively simple. ...

  2. js对象数组根据某一属性查找对象

    js对象数组[{name: "zhangsan", age: 20}, {name: "lisi", age: 30}], 如果想查找name是zhangsan ...

  3. JS对象数组去重简单有效方法

    I.输入 JS对象数组去重是业务经常遇到的方法,稍微简洁一点的方法,如下: var data = [{"id": 1, "name": "李四1&qu ...

  4. 前端:JS实现数组去重常用的六种方法介绍

    今天给大家分享JS实现数组去重常用的六种方法,希望对大家能有所帮助! 定义变量 let arr = [20,6,13,20,100,8,13,11]; let newArr = []; 1.两层循环去 ...

  5. 两个对象数组去重的3种方法

    两个对象数组去重的3种方法 前言 问题描述 解决方案一 解决方案二 解决方案三 前言 前段时间写过JavaScript数组去重最简单的 4 种方案,里面的数组元素是基本类型.本文要讲的数组元素是对象, ...

  6. 【小程序】【Tips】【前端】交互【后端】从Json对象数组里面获取数据的方法 - PHP - JS 的原生方法

    小程序后端和前端之间是通过,json的格式来传数据的,那么,数据如何获取呢?这就分两个部分 1 就是后端到前端 后端我们考虑是PHP环境,前端是JS, 那么在JS里面,很简单: 比如,小程序一般在前端 ...

  7. js 对象深拷贝、对象数组深拷贝的几种方法总结

    写前端的时候经常会遇到对象的拷贝,一般我们会用到深拷贝,深拷贝就是完完整整的将一个对象从内存中拷贝一份出来,放到另一块新开辟的内存中去.向下面这种赋值是浅拷贝,a.b都是对同一块内存进行引用,a.b哪 ...

  8. android 接收js对象数组,java怎么接收js 数组对象数组对象

    java怎么接收js 数组对象数组对象 [2021-02-04 22:25:34]  简介: php数组转js数组对象的方法:首先获取[$arr]数组:然后使用函数[json_encode()]将数组 ...

  9. 一行代码完成js对象数组的深拷贝

    1.对于普通数组(数组元素为数字或者字符串),深拷贝很简单,拷贝之后两个数组指针指向的存储地址不同,从而完成深拷贝 var _test = [1,2,3];//原数组 var _testCopy =  ...

最新文章

  1. python的构建工具setup.py
  2. Matlab 坐标轴比例一致导致图形变形
  3. c++标准模板库STL【快速查找】【最全】【常用】【语法】
  4. 教你自己制作Vista与DOS双系统
  5. HDU 6168 Numbers 思维 水题
  6. 违规停放共享单车 319人被纳入限制骑行“黑名单”
  7. Git生成ssh密钥指定文件
  8. python字符串函数_python字符串函数
  9. 如何改善字幕组同学「为爱发电」的工作环境?
  10. 通过Socket configuration controls 获取网络设备地址
  11. md5加解密工具 java_MD5解密加密工具类
  12. RuntimeError: NCCL error in:XXX,unhandled system error, NCCL version 2.7.8
  13. linux学习之使用piranha配置高可用集群
  14. python爬股指期货数据_新浪期货数据接口API(实时数据/历史数据)
  15. 5分钟,教你创建在线聊天营销机器人
  16. GeeM2传奇引擎进入游戏出现白屏的解决办法
  17. QQ农场之舌尖上的美食(20210729~20211021)
  18. 4路服务器cpu位置,4路cpu服务器
  19. Win7 开机优化系列-上篇
  20. Azure Active Directory Powershell命令创建一个application以及App需要的权限

热门文章

  1. GA遗传算法(Genetic Algorithm)
  2. 每个Wi-Fi都有独一无二的IP地址吗?
  3. 浅谈帆软报表的权限授权,以便于二次开发
  4. JAVA将list2合并到list1_java如何将两个list合并的问题
  5. deeply understanding Binary tree--二叉树
  6. linux关闭io统计,linux 统计每个进程所占用的io数
  7. 软件度量五步法包括_软件交付效能度量——从吞吐量和稳定性开始
  8. java默认异常处理_spring boot 默认异常处理的实现
  9. 并注册烧写钩子 获取启动介质类型_PyTorch中对张量登记注册反向传播的钩子函数,并展示调用顺序...
  10. 机器学习之数据不平衡问题