JavaScript非数字(中文)排序
直接上代码:
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按IP地址排序
JavaScript按IP地址列表排序,主要思路就是分割每个点号部分,然后ip1和ip2分别对不够三位数的进行补0操作,然后转换为数字类型进行一一比较. 上代码: 正序: var arr=[ {ip: ...
- JS排序:localeCompare() 方法实现中文排序、sort方法实现数字英文混合排序
定义:用本地特定的顺序来比较两个字符串. 语法:stringObject.localeCompare(target) 参数:target——要以本地特定的顺序与 stringObject 进行比较的字 ...
- Javascript中将数字转换为中文的方法
//js实现将数字1234转化为汉字字符串(一千二百三十四)(或大写汉字壹仟贰佰叁拾肆): /*阿拉伯数字转中文数字 中文数字的特点: 每个计数数字都跟着一个权位,权位有:十.百.千.万.亿. 以“万 ...
- Js中文排序(拼音首字母)
演示地址:http://lar5.sinaapp.com/ 1.index.html <html xmlns="http://www.w3.org/1999/xhtml"&g ...
- JavaScript字符串&数字间转换
比较操作符的操作数可以是任意类型.然而,只有数字和字符串才能真正执行边角操作,因此那些不是数字和字符串的操作数都讲进行类型转换,类型转换规则如下: 如果操作数为对象,那么对象转换为原始值:如 ...
- PHP 向 MySql 中数据修改操作时,只对数字操作有效,非数字操作无效,怎么办?
问题描述: 用PHP向MySql数据库中修改数据,实现增删改(数据库能正确连接) 经测试,代码只能对数字进行正常的增删改操作,非数字操作无效 但要在课程名称中输入中文,应该如果修改呢? 存 ...
- ORACLE的order by中文排序
在使用order by排序的时候,出现如下情况: 印象中中文排序应该默认是按照拼音排序的,为何"鑫"会排在"中"的后面呢?猜想order by是不是根据对应 ...
- jQuery的dataTables插件实现中文排序
最近在写Java web. 写JSP的时候发现一个很好玩的插件dataTables.分页.过滤.排序等等手到擒来. 哎哎哎,有点点可惜的是排序这个功能不支持中文.于是网上查查找找,现在把方法整理一下, ...
- TreeMap中文排序,TreeMap倒序输出排列
1.TreeMap集合倒序排列 import java.util.Comparator; /** * 比较算法的类,比较器 * @author Administrator * */ public cl ...
随机推荐
- IntelliJ IDEA 注册码(因为之前的地址被封杀了,所以换了个地址)
附上IntelliJ IDEA 注册码(感谢提供注册码的大神):http://idea.qinxi1992.cn/(已封杀) http://idea.lanyus.com/(新地址) 注:以前直接复制 ...
- IDEA快捷键整理
IDEA快捷键整理 一.修改快捷键方法: 点击 Fi ...
- MySQL 线程池&连接池&长连接&短连接
线程池 简介 1.mysql每连接每线程,mysql都分配一个单独的线程,该线程处理客户端发来的所有命令 2.每个线程会占用一定的系统资源,线程数越多消耗的系统资源也越多 3.线程的创建和销毁有一定的 ...
- 使用MultipartFile上传文件
转载地址:https://www.cnblogs.com/lunaticcoder/p/9813483.html(具体的看这个这个大佬的博客) 依赖包: <!-- 上传文件依赖组件 --> ...
- Testing - 软件测试知识梳理 - 比较质量保证(QA)与质量控制(QC)
QA QC QM 概念 Quality Assurance (质量保证) Quality Control (质量控制) Quality Manage (质量管理) 定义 为达到质量要求所采取的作业技术 ...
- Java序列化技术即将被废除!!!
我们的对象并不只是存在内存中,还需要传输网络,或者保存起来下次再加载出来用,所以需要Java序列化技术.Java序列化技术正是将对象转变成一串由二进制字节组成的数组,可以通过将二进制数据保存到磁盘或者 ...
- TCP/IP 笔记 - 超时和重传
TCP协议为了提供可靠的数据传输服务,会启动数据重传来解决下层网络层(IP)可能出现的数据包丢失. 超时重传介绍 TCP重传由两套独立机制来完成重传,基于时间的超时重传(RTO,TCP发送数据时会设置 ...
- Spring Cloud Ribbon——客户端负载均衡
一.负载均衡负载均衡(Load Balance): 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性.其意思 ...
- python 装饰方法
def _concurrent(func): @wraps(func) # 加入这个的目的是保持原来方法的属性 def arg_wrapper(self, *args, **kwargs): try: ...
- web模拟终端博客系统
本文由QQ音乐前端团队发表 前段时间做了一个非常有意思的模拟终端的展示页:http://ursb.me/terminal/(没有做移动端适配,请在PC端访问),这个页面非常有意思,它可以作为个人博客系 ...