直接上代码:

  

     var arr=[
{name:"张散步",age:"23",sports:"篮球",number:"231123"},
{name:"李斯的",age:"3",sports:"钢琴",number:"534563"},
{name:"艾伦",age:"63",sports:"排球",number:"345455"},
{name:"王武",age:"33",sports:"乒乓球",number:"867324"},
{name:"乏力",age:"26",sports:"足球",number:"132457"}
]; //console.log(ForwardRanking(arr,"name"));//正序
//console.log(ReverseRanking(arr,"name"));//反序
//console.log(ForwardRanking(arr,"sports"));//正序
//console.log(ReverseRanking(arr,"sports"));//反序 /* 中文正向排序
*
* data:对象数组
* p:排序的参数名
*
* */
function ForwardRanking(data, p) {
for (i = 0; i < data.length - 1; i++) {
for (j = 0; j < data.length - 1 - i; j++) {
var dd = (data[j][p].localeCompare(data[j + 1][p], "zh"));//1---前者往后移,-1===位置不变
if (dd > 0) {
var temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
return data;
} /*反向排序
*
* data:对象数组
* p:排序的参数名
*
* */
function ReverseRanking(data, p) {
for (i = 0; i < data.length - 1; i++) {
for (j = 0; j < data.length - 1 - i; j++) {
var dd = (data[j][p].localeCompare(data[j + 1][p], "zh"));//1---前者往后移,-1===位置不变
if (dd < 0) {
var temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
return data;
}

  结果如下:

  1、姓名,左边是正序(ForwardRanking(arr,"name")),右边是反序(ReverseRanking(arr,"name"));

      

   1、sports,左边是正序(ForwardRanking(arr,"sports")),右边是反序(ReverseRanking(arr,"sports"));

      

  这是其他排序的方法,欢迎查看,欢迎给意见!

  JavaScript按纯数字排序

  JavaScript日期排序

  JavaScript按IP地址排序

  JavaScript按日期排序之灵活排序

  

JavaScript非数字(中文)排序的更多相关文章

  1. JavaScript按IP地址排序

    JavaScript按IP地址列表排序,主要思路就是分割每个点号部分,然后ip1和ip2分别对不够三位数的进行补0操作,然后转换为数字类型进行一一比较. 上代码: 正序: var arr=[ {ip: ...

  2. JS排序:localeCompare() 方法实现中文排序、sort方法实现数字英文混合排序

    定义:用本地特定的顺序来比较两个字符串. 语法:stringObject.localeCompare(target) 参数:target——要以本地特定的顺序与 stringObject 进行比较的字 ...

  3. Javascript中将数字转换为中文的方法

    //js实现将数字1234转化为汉字字符串(一千二百三十四)(或大写汉字壹仟贰佰叁拾肆): /*阿拉伯数字转中文数字 中文数字的特点: 每个计数数字都跟着一个权位,权位有:十.百.千.万.亿. 以“万 ...

  4. Js中文排序(拼音首字母)

    演示地址:http://lar5.sinaapp.com/ 1.index.html <html xmlns="http://www.w3.org/1999/xhtml"&g ...

  5. JavaScript字符串&数字间转换

    比较操作符的操作数可以是任意类型.然而,只有数字和字符串才能真正执行边角操作,因此那些不是数字和字符串的操作数都讲进行类型转换,类型转换规则如下:      如果操作数为对象,那么对象转换为原始值:如 ...

  6. PHP 向 MySql 中数据修改操作时,只对数字操作有效,非数字操作无效,怎么办?

    问题描述:   用PHP向MySql数据库中修改数据,实现增删改(数据库能正确连接) 经测试,代码只能对数字进行正常的增删改操作,非数字操作无效   但要在课程名称中输入中文,应该如果修改呢?   存 ...

  7. ORACLE的order by中文排序

    在使用order by排序的时候,出现如下情况:   印象中中文排序应该默认是按照拼音排序的,为何"鑫"会排在"中"的后面呢?猜想order by是不是根据对应 ...

  8. jQuery的dataTables插件实现中文排序

    最近在写Java web. 写JSP的时候发现一个很好玩的插件dataTables.分页.过滤.排序等等手到擒来. 哎哎哎,有点点可惜的是排序这个功能不支持中文.于是网上查查找找,现在把方法整理一下, ...

  9. TreeMap中文排序,TreeMap倒序输出排列

    1.TreeMap集合倒序排列 import java.util.Comparator; /** * 比较算法的类,比较器 * @author Administrator * */ public cl ...

随机推荐

  1. LabVIEW(十四):VI属性

    1.VI的属性在项目研究中是很常用的,但是会经常忽略VI的属性设置,建议在编程事常常运用这些属性的设置,这样就可以使你的程序更加完善,易懂性也会提高. 属性快捷键:Ctrl+I. 2.常规 (1).编 ...

  2. 使用 maven-assembly-plugin 打包项目

    此种方式可避免resource节点对compile阶段的影响,compile阶段会读取resource节点的信息但是不会读取assembly的配置文件 1. pom文件 <?xml versio ...

  3. 用vue-cli脚手架搭建一个仿网易云音乐的全家桶vue项目

    一,vue-cli环境搭建 1,全局安装webpack npm install webpack -g 2,安装vue脚手架 npm install vue-cli -g 3,新建一个新的project ...

  4. iOS-UIImage图片绘制颜色

    - (UIImage *)dtk_setImageColor:(UIColor *)imageColor{ //获取画布 UIGraphicsBeginImageContextWithOptions( ...

  5. Python模块——HashLib与base64

    摘要算法(hashlib) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...

  6. 递归查询区域信息及子区域到advTree

    效果: DataTable dtArea = new DataTable(); private void Form1_Load(object sender, EventArgs e) { Node n ...

  7. jquery的contains方法

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  8. Nginx+Keepalived 实现高可用

    Keepalived 是一个高性能的 服务器高可用 或 热备解决方案,Keepalived主要来防止服务器单点故障的问题,可以通过其与Nginx的配合来实现web服务端的高可用. Keepalived ...

  9. 213. Orchard学习 二 3、001.IOrchardHost 与Autofac

    继前篇,在Orchard Application_Start() -> HostInitialization() 里,调用 OrchardStarter.CreateHost创建IOrchard ...

  10. Android Studio 签名打包

    项目开发完成后,如果要分发到Google play或者各个第三方渠道,签名打包是必不可少的,下面详细介绍整个签名打包过程,及如何查看签名. 1.创建签名文件 选择要打包的项目-点击Build-在弹出的 ...