精选文章 分页及排序

分页及排序

作者:深拥梦$ 时间: 2019-11-05 05:26:55
深拥梦$ 2019-11-05 05:26:55

 分页

/**
 * 分页 arr原始数组,pageSize每页多少条数据
*/
    const paging = (arr,pageSize)=>{
        let obj = {}
        for(var i = 0 ; i < arr.length;i++){
            let key = Math.floor(i / pageSize) + 1
            if(!(key in obj)){
                obj[k] = [arr[i]]
            }else{
                obj[k].push(arr[i])
            }
        }
        return obj   //{1:[{},{}],2:[{},{}]}
    }

 排序

方法一:sort排序(冒泡排序)

/**
     * 表格排序 arr1需要排序的数组,order需要排序的值
    */
    const sortArr = (arr1,order)=>{
        if(arr1.length == 0 || order == ""){
            return arr1
        }else{
            let arr = [...arr1]
            let str = arr.split(" ")[0]   //需要排序的值
            let rule = arr.split(' ')[1]  //排序规则 asc降序,desc升序
            arr.sort(function(x,y){
                if(x[str] >= y[str]){
                    return rule == 'asc'?-1:1
                }else{
                    return rule == 'asc'?1:-1
                }
            })
            return arr
        }
    }

方法二:快速排序

/*第一种
    * 快速排序,按某个属性,或按“获取排序依据的函数”,来排序.
    * @method soryBy
    * @static
    * @param {array} arr 待处理数组
    * @param {string|function} prop 排序依据属性,获取
    * @param {boolean} desc 降序
    * @return {array} 返回排序后的新数组
    */
    var sortBy =function (arr, prop, desc){
        var props=[],
        ret=[],
        i=0,
        len=arr.length;
        if(typeof prop=='string') {
            for(; i pivot[key]) {
                    left.push(arr[i]);
                } else {
                    right.push(arr[i]);
                }
            }
      }
      return quickSort(left,key,rule).concat([pivot], quickSort(right,key,rule));
    };

 

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:如何科学的打开 Leetcode

下一篇:闪拍 -比美-图片知识产权交易-图片展览 产品构思

您可能感兴趣

  • .NET Core:通过Web API进行微服务交互

    目录 介绍 命名协议 MicroCommerce应用程序结构 MicroCommerce应用开发 1.接口项目,微服务接口和模型类 2. ProductCatalog项目 3. ShoppingCart项目 4. ActivityLogger项目 5. WebUI项目,用户界面 6.关于通用功能的几句话 应用测试 结论 缺点 下载源代码26.3 KB 介绍 几乎所有在.NET Core中使用...

  • MemCache详细解读

    本节内容主要关于mencache的工作原理,memcache的应用场景及其应用实例配置,memcache安装部署。 一、Memcached工作原理 1.服务端缓存实现 (1)memcached特性 分布式: 实例和缓存在逻辑上是分离的 普通缓存 Memcached缓存 特 性 缓存与特定的应用实例绑定,每个应用实例只能访问特定的缓存 实例独立于各个应用服务器实例运行,每应用实例可以访问任意缓...

  • HTML5和WAP的联系与区别!

      随着时代的快速发展,移动互联网加速来临,有越来越多的热门技术被人们提及和应用。虽然人们对于HTML5大前端、大数据、云计算、等热门IT技术热情不减,但对于技术与技术之间的区别以及具体生活的应用了解的还不是十分详细。今天,就让我们以HTML5大前端为例,具体讲解一下移动互联网时代下HTML5大前端和WAP之间的区别与联系。   首先,从定义上区分。HTML5的全称是“超文本标记语言”,它是...

  • 2020B证(安全员)考试及B证(安全员)模拟考试题库

    题库来源:安全生产模拟考试一点通公众号小程序 2020B证(安全员)考试及B证(安全员)模拟考试题库,包含B证(安全员)考试答案解析及B证(安全员)模拟考试题库练习。由安全生产模拟考试一点通公众号结合国家B证(安全员)考试最新大纲及B证(安全员)考试真题出具,有助于B证(安全员)考试软件考前练习。 1、【单选题】多台挖掘机在同一作用面机械开挖,挖掘机间距应大于( )。( B ) A、5m B...

  • OpenCV 识别图片中的米粒个数,并计算米粒的平均面积和长度(转)

    介绍 OpenCV+Python 使用OpenCV构建图像识别算法,识别图片中的米粒个数,并计算米粒的平均面积和长度 软件架构 模块:OpenCV 4.0.0.21 编程语言:Python 3.7.2 编译器:PyCharm 2018 程序设计思路 首先介绍一下程序设计的思路: 图像采集(取到图像):可以用摄像头拍摄或者图片直接导入 图像预处理:对图像进行灰度化 基于灰度的阈值分割:使用局部...

  • JetPack WorkManager

    1.概览 官方文档:WorkManager 谷歌实验室:官方教程 官方案例:android-workmanager WorkManger介绍视频:中文官方介绍视频 谷歌工程师博客:https://medium.com/androiddevelopers/workmanager-basics-beba51e94048 Android JetPack实例学习:https://www.jiansh...

  • 倒排索引与正序索引

    前言 文章主要涉及三点: 1、mysql正序索引 2、es倒排索引简介 mysql正序索引 mysql的聚簇索引的查询:通过索引定位到存储数据的叶子节点。 mysql的非聚簇索引:通过索引定位到叶子节点的聚簇索引值,再根据聚簇索引回表查询数据。 因此正序索引是通过聚簇索引定位到数据,如果select * from table where like '%a%' 则需要捞全表进行匹配。 es倒排...

  • IntellIJ IDEA2020新功能

    一、java 1、Java 14支持:记录和模式匹配 IntelliJ IDEA 2020.1添加了对Java 14及其新功能的支持。IDE不仅添加了对Records的完整代码洞察支持,而且还使您能够快速创建新记录并生成其构造函数和组件,并警告存在的错误。您还将发现对instanceof运算符的模式匹配的支持,包括新的检查和快速修复,该快速修复通过用新的简洁模式变量替换它们来快速简化冗长的i...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。