1、直接排序

  var arr = [1,3,2,5];

  function compare(a,b){
    return a - b;//从小到大
    return b - a;//从大到小
  }
  console.log(arr.sort(compare));

2 嵌套排序

按照数组中的某一项value值进行排序,property为属性值

  var arr = [
    {name:'jim',age:27},
    {name:'tony',age:40},
    {name:'jane',age:36},
    {name:'lilei',age:23},
    {name:'Hmm',age:28},
    {name:'jack',age:56},
    {name:'vivian',age:19}
  ];

function compare(property){
  return function(a,b){
    var value1 = a[property];
    var value2 = b[property];
    return value2 - value1;
    }
  }
console.log(arr.sort(compare('age')))

3 嵌套排序,且可以切换正反序

  var arr = [

    {name:'willm',age:27},
    {name:'jay',age:40},
    {name:'Ljj',age:36}

  ];
//不传rev的,则默认按升序排列,传rev则按降序排列
  function compare(property,rev){
    if( rev == undefined ){
      rev = 1;
      }else{
      rev = -1;
      }
  return function(a,b){
    var value1 = a[property];
    var value2 = b[property];
    if(value1 < value2){
    return rev * -1;
  }
    if(value1 > value2){
    return rev * 1;
    }
    return 0;
  }
  }
  console.log(arr.sort(compare('age')));

  

js排序问题的更多相关文章

  1. Web开发疑难问题解决方案-(最近更新:2018-11-29)

    这篇文章用来记录Web(包括PC和移动端)开发过程中遇到的一些疑难问题的解决方案. P1. '1像素边框'问题 P2.只读输入框在ios上的莫名表现 P3.自适应高度的textarea P4. CSS ...

  2. js中排序问题总结

    js的排序中通常使用到sort函数,可以用冒泡排序,插入排序,快速排序,希尔排序,系统方法等方法,本文结束后分享一个用着排序算法的链接,感兴趣可以了解了解. 1.常见的对一般数组进行排序,代码如下: ...

  3. js关于对象键值为数字型时输出的对象自动排序问题的解决方法

    一.对象键值为数字型时输出的对象自动排序问题如: var objs = {    "1603":{id:"1603"},    "1702" ...

  4. 记录--js中出现的数组排序问题

    这是今天在写vue项目时发生的一个小问题,在此记录一下,方便自己的回顾.项目是前后端分离的,前台主要使用了vue-cli3.0 + mintui,是一个移动端的web app包括了后台发布管理的一些功 ...

  5. js sort()函数 排序问题 var arr =['A-1-5-1','A-1-10-2','A-1-5-5','B-2-3-1','C-4-10-1'], 对这个数组进行排序,想达到的效果是["A-1-5-1", "A-1-5-5", "A-4-10-1", "A-1-10-2", "A-2-3-1"]

    先介绍个方法 charCodeAt() 方法可返回指定位置的字符的 Unicode 编码.这个返回值是 0 - 65535 之间的整数. stringObject.charCodeAt(index) ...

  6. js~一个列表中包含上移下移删除等功能

    最近做了一个项目,包括了一个列表页,为了用户体验,操作均使用JS实现,其中包括在列表中实现上移,下移,删除等功能,前台JS,后端数据修改使用AJAX,本文主要说一下前台JS这块 先看一下页面的截图

  7. js数组排序,支持正反排序以及多维度排序

    工作中遇到js数组排序问题,数组中存储的都是对象,于是就百度了下,利用别人的代码进行修改,最终完成可以倒序.反序,可以进行多维度排序的功能源码如下: /** * js数组排序 支持数字和字符串 * @ ...

  8. 新书《Ext JS 4.2实战》即将出版

    目录: 第1章    Ext JS 4概述1.1    从Ext JS 4.0到4.071.2    从4.1到4.1.1a1.3    从4.2到4.2.11.4    如何选择版本1.5    基 ...

  9. 关于layui中tablle 渲染数据后 sort排序问题

    最近在使用easyweb框架做后台管理,案例可见https://gitee.com/whvse/EasyWeb. 其中遇到了 sort排序问题, html代码:<table class=&quo ...

随机推荐

  1. 【测试工具】Macaca 自动遍历器 NoSmoke

    Macaca 提供的基础能力上研发出了一套多端深度遍历爬虫工具. 希望可以最大化减少UI 测试脚本的编写涵盖以下功能点: 支持iOS, Android,PC-Web 三个平台的自动化测试 同时可以通过 ...

  2. Python自动化测试用例设计--测试类型

    1.前言 WEB自动化测试时候测试哪些类型,下面将介绍一下: 2. 测试类型 2.1 测试静态内容 静态内容测试是最简单的测试,用于验证静态的.不变化的UI 元素的存在性.例如: 每个页面都有其预期的 ...

  3. FortiGate路由模式--静态地址线路上网配置

    1.需求:外网接口使用专线,由运营商分配指定的静态地址,内网为192.168.1.0/24网段,实现基本上网功能. 运营商分配ip地址:202.1.1.10,网关地址:202.1.1.9, DNS:2 ...

  4. 890. Find and Replace Pattern找出匹配形式的单词

    [抄题]: You have a list of words and a pattern, and you want to know which words in words matches the ...

  5. Linux Curl命令

    一.简介 linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具.   二.安装 wget http://c ...

  6. java特殊字符分隔符

    点,string.split("[.]") . 竖线, string.split("\\|"). 星号, string.split("\\*" ...

  7. 关于双重for循环封装数据问题

    1.问题描述 在使用双重for循环进行封装数据时出现一个问题,就是有的数据封装上了,有的数据未封装上,找了很久原因: for (A a:ListA) { for (B b: ListB) { if(a ...

  8. boost asio 学习(二)了解boost::bind

    2.了解boost::bind使用boost::bind封装一个函数,考虑以下例子示例2a #include <iostream> #include <boost/bind.hpp& ...

  9. MySQL配置文件优化(Innodb)

    Innodb配置文件参数调优 ——MySQL建议采用MySQL 5.6 InnoDB存储引擎 1.内存利用方面: innodb_buffer_pool_size ☆☆☆☆☆ Innodb优化首要参数. ...

  10. Acegi框架

    Acegi(Acegi Security)框架,是一个能为基于Spring的企业应用提供强大而灵活安全访问控制解决方案的框架,Acegi已经成为 Spring官方的一个子项目,所以也称为Spring ...