前几天在工作碰到一个json对象排序的问题,一直认为JavaScript不能进行对象的排序,其实并不是,今天就来总结下常见的几种简单排序:

  第一类 纯数字;

  var arrOld = [4,10,9,1,0,31];
  var arrNew = arrOld.sort(sortNum);
  function sortNum (a,b){
    return a-b;
  }
  //输出结果:[0, 1, 4, 9, 10, 31]

    sort()   方法用于对数组的元素进行排序,在原数组上进行排序,不生成副本。默认安装字符编码的顺序进行排序,如果想按其他标准排序就需要提供比较函数,sortNum()  就是进行数字排序的函数。

  第二类 英文字母;

    var arrOld = ["John","Alley","Selina","Yuan","Delia"];
var arrNew = arrOld.sort();
//["Alley", "Delia", "John", "Selina", "Yuan"]

  这个就比较简单了,sort排序即可

  第三类 中文汉字,还是直接上代码;

    var arrOld = ["张三","李四","王五","安利","蔡敏"];
var arrNew = arrOld.sort(sortChiese);
function sortChiese(param1,param2){
  return param1.localeCompare(param2);
}
//["安利", "蔡敏", "李四", "王五", "张三"]

  localeCompare() 按照本地特定的顺序进行比较

  第四类 对象类的排序,也是本次的重点;

      var arrOld = {"msg":[{"num": 10,"姓名":"张三","性别":"男","年龄":15},
                 {"num": 1,"姓名":"李四","性别":"男","年龄":25},
                 {"num": 22,"姓名":"王五","性别":"女","年龄":20},
                 {"num": 9,"姓名":"马六","性别":"男","年龄":15},
                 {"num": 32,"姓名":"朱琪","性别":"女","年龄":15}]};
  var arrNew = bubbleSort(arrOld.msg);
  function bubbleSort(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i].num>arr[j].num){//如果前面的数据比后面的大就交换
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
return arr;
}

  举一反三,我们就能通过上面三种简单的排序思路对姓名、性别、年龄等进行排序了。这里引用的是冒泡排序,当然也可以使用其他排序方法。

  

使用JavaScript几种简单的排序的更多相关文章

  1. java实现几种简单的排序算法

    public class SimpleAri { public static void main(String[] args) { int[] t = {11, 21, 22, 1, 6, 10, 3 ...

  2. 四种简单的排序算法的php实现

    无聊,用php写几个排序算法,算法介绍请移步这里,这里使用php实现了几个简单的,如下 //选择排序 function selection_sort($arr){ $len = count($arr) ...

  3. 几种简单的排序算法(JAVA)

    几种排序算法(JAVA) 一.代码 package com.hdwang; import java.util.Arrays; /** * Created by admin on 2017/1/20. ...

  4. JavaScript 几种简单的table切换

    方法一:for循环+if判断当前点击与自定义数组是否匹配 <!DOCTYPE html> <html lang="en"> <head> < ...

  5. Project 9:两种简单数列排序

    1.冒泡法排序 /* 冒泡排序法的核心思想就是依次把最大的数换到最后面. 若有n个数 就需要通过n-1次循环来排序. 具体做法就是从第一个数开始 两个数比较大小大的换到后面,这样最大的就在最后了. 然 ...

  6. Python实现几种简单的排序算法

    一.冒泡排序 概念:为一个无序的列表排成有序的 实现过程描述:(升序) 1.比较相邻的元素,如果第一个比第二个大,就交换他们的位置 2.对每一对相邻元素重复1的工作,从开始第一队到最后一对,最后结束的 ...

  7. javascript中两种基本常用排序算法分析

    备注:内容大部分从网上复制,代码为自己手写.仅做知识的温故知新,并非原创. 1.冒泡排序(Bubble Sort) (1)算法描述 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两 ...

  8. JavaScript实现的9大排序算法

    笔试面试经常涉及各种算法,本文简要介绍常用的一些算法,并用JavaScript实现. 1.插入排序 1)算法简介 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法.它的工作原 ...

  9. Java中几种常见的排序方式

    冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字 ...

随机推荐

  1. v-model绑定一个对象,组件内部分别负责不同字段的场景实现

    我们知道v-model对于单个property双向数据绑定非常有用,保持父子组件之间的数据传递和同步,但也有很多场景下希望一个组件能够处理多个数据字段,这时就有一些小小技巧了. https://sim ...

  2. Linux文件共享服务 FTP,NFS 和 Samba

    Linux 系统中,存储设主要有下面几种: DAS DAS 指 Direct Attached Storage,即直连附加存储,这种设备直接连接到计算机主板总线上,计算机将其识别为一个块设备,例如常见 ...

  3. 英语Lignaloes沉香木LIGNALOES单词

    中文名沉香木 外文名Lignaloes 国内分布两广以及云南和福建等地 国外分布印度尼西亚.马来西亚.新加坡 沉香木是珍贵的香料,被用作燃烧熏香.提取香料.加入酒中,或直接雕刻成装饰品.沉香木又名沉水 ...

  4. 12.redis 的并发竞争问题是什么?如何解决这个问题?了解 redis 事务的 CAS 方案吗?

    作者:中华石杉 面试题 redis 的并发竞争问题是什么?如何解决这个问题?了解 redis 事务的 CAS 方案吗? 面试官心理分析 这个也是线上非常常见的一个问题,就是多客户端同时并发写一个 ke ...

  5. Django框架(十八)—— drf:序列化组件(serializer)

    序列化组件 # 模型层 from django.db import models class Book(models.Model): nid = models.AutoField(primary_ke ...

  6. Echarts 柱状图组

    通过Echarts可以实现柱状图组,如下图:是一个学生三次模考成绩对比结果 源码 <!DOCTYPE html> <html> <head> <meta ch ...

  7. LNK2001 无法解析的外部符号 __imp__CameraCreateSettingPage@24

    用VS2017,Release X86进行编译时显示如下错误: 1>CWDMDlg.obj : error LNK2001: 无法解析的外部符号 __imp__CameraGetImageBuf ...

  8. pdfium:创建CreateNewDoc

    CreateNewDoc  //创建文档   https://github.com/PureFusionOS/android_external_pdfium/blob/040b899a933cdb37 ...

  9. node小爬虫

    这一章主利用node的http模块制作一个网页的小爬虫来爬去网页信息,其中对于后端html的节点的获取采用了cheerio模块,这 /** * Created by Administrator on ...

  10. 201871010118-唐敬博《面向对象程序设计(java)》第十一周学习总结

    在博客园撰写博客(随笔),总结10周学习内容,作业格式要求如下: 博文名称:学号-姓名<面向对象程序设计(java)>第十一周学习总结(1分) 博文正文开头格式:(2分) 项目 内容 这个 ...