js文字排序的方法
拼音排序:
var arr = [{ a: , b: "我" }, { a: , b: "是" }, { a: , b: "帅" }, { a: , b: "哥" }, { a: , b: "你" }, { a: , b: "服" }, { a: , b: "不" }];
arr.sort(
    function compareFunction(param1, param2) {
        return param1.b.localeCompare(param2.b,"zh");
    }
);
// 结果为:[{a: 1, b: "不"},{a: 1, b: "服"},{a: 1, b: "哥"},{a: 1, b: "你"},{a: 1, b: "是"},{a: 1, b: "帅"},{a: 1, b: "我"}]
拼音排序并按字母分类:
function pySegSort(arr,empty) {
    if(!String.prototype.localeCompare)
        return null;
    var letters = "*abcdefghjklmnopqrstwxyz".split('');
    var zh = "阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀".split('');
    var segs = [];
    var curr;
    $.each(letters, function(i){
        curr = {letter: this, data:[]};
        $.each(arr, function() {
            if((!zh[i-] || zh[i-].localeCompare(this,"zh") <= ) && this.localeCompare(zh[i],"zh") == -) {
                curr.data.push(this);
            }
        });
        if(empty || curr.data.length) {
            segs.push(curr);
            curr.data.sort(function(a,b){
                return a.localeCompare(b,"zh");
            });
        }
    });
    return segs;
}
JSON.stringify(pySegSort(["我","不","懂","爱","啊","按","已","呀","选","县"]));
// 结果:
"[
  {"letter":"a","data":["啊","爱","按"]},
  {"letter":"b","data":["不"]},
  {"letter":"d","data":["懂"]},
  {"letter":"w","data":["我"]},
  {"letter":"x","data":["县","选"]},
  {"letter":"y","data":["呀","已"]}
]"
参考文档:
http://blog.csdn.net/testcs_dn/article/details/25116655 ---------JS获取中文拼音首字母,并通过拼音首
js文字排序的方法的更多相关文章
- js按照特定的中文字进行排序的方法
		
之前遇到过按照中文字符排序的需求很顺利的解决了,这次是按照特定的中文字进行排序,比如按照保守型,稳健型,平衡型,成长型,进取型进行排序. 可以使用localeCompare() 方法来实现中文按照拼音 ...
 - JS基础篇--sort()方法的用法,参数以及排序原理
		
JS基础篇--sort()方法的用法,参数以及排序原理 sort() 方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字符串Unicode码点.语法:arrayObject.sort( ...
 - 转:js,jQuery 排序的实现,网页标签排序的实现,标签排序
		
js,jQuery 排序的实现: 重点: 想要实现排序,最简单的方法就是 先把标签用jQuery读进对象数组 用js排序好对象数组 (针对对象数组进行排序, 不要试图直接对网页的内容进行直接更改) 用 ...
 - JS实现数组去重方法大总结
		
js数组根据对象中的元素去重: var arr2 = [ { name: "name1", num: "1" }, { name: "name2&qu ...
 - JavaScript -- 时光流逝(二):js中数组的方法
		
JavaScript -- 知识点回顾篇(二):js中数组的方法 1. 数组 (1)定义数组,数组赋值 <script type="text/javascript"> ...
 - js json 排序
		
/* json:需要排序的json key:排序项 */ function JsonSort(json, key) { //console.log(json); for (var j = 1, jl ...
 - js多种去重的方法总结
		
第一种是比较常规的方法 思路: 1.构建一个新的数组存放结果 2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比 3.若结果数组中没有该元素,则存到结果数组中 Array.pro ...
 - 由js apply与call方法想到的js数据类型(原始类型和引用类型)
		
原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...
 - iOS之在webView中引入本地html,image,js,css文件的方法 - sky//////////////////////////////////////ZZZZZZZZZZZZZZZ
		
iOS之在webView中引入本地html,image,js,css文件的方法 2014-12-08 20:00:16CSDN-sky_2016-点击数:10292 项目需求 最近开发的项 ...
 
随机推荐
- java线程入门知识
			
为什么需要多线程? . 模型的简化,如某些程序是由多个相对独立任务的运行: . 图形界面的出现,输入.输出的阻塞 . 多核CPU的更好利用 . 异步行为的需要 Java多线程的特性: . 程序的入口m ...
 - Java中 对象的创建于调用
			
Main方法是程序的主入口,想要用某个方法必须在main方法中调用 创建对象: 类名 对象名 = new 类名(); 使用对象访问类中的成员: 对象名.成员变量: 对象名.成员方法(); 成员变量的默 ...
 - Nginx负载均衡health_check分析
			
在Nginx负载均衡中,我们很难保证说每一台应用服务器都能一直正常的运行下去.但是我们可以通过设置Nginx来检测这些应用服务器,检测这些服务器当中不能访问的. Nginx的检测方式分为两种,一种是被 ...
 - [置顶]
        HTTP 幂等性概念和应用
			
转自:http://coolshell.cn/articles/4787.html HTTP 幂等性概念和应用 [ 感谢 Todd 同学 投递本文 ] 基于 HTTP 协议的 Web API 是时下最 ...
 - vue中数组变动更新检测
			
Vue 包含两种观察数组的方法分别如下 1.变异方法 顾名思义,变异方法会改变被这些方法调用的原始数组,它们也将会触发视图更新,这些方法如下 push() pop() shift() unshift( ...
 - HDU2188 - 悼念512汶川大地震遇难同胞——选拔志愿者【巴什博弈】
			
对于四川同胞遭受的灾难,全国人民纷纷伸出援助之手,几乎每个省市都派出了大量的救援人员,这其中包括抢险救灾的武警部队,治疗和防疫的医护人员,以及进行心理疏导的心理学专家.根据要求,我校也有一个奔赴灾区救 ...
 - 人脸识别中的harr特征提取(转)
			
影响AdaBoost人脸检测训练算法速度很重要的两方面是特征选取和特征计算.选取的特征为矩特征为Haar特征,计算的方法为积分图. (1)Haar特征: Haar特征分为三类:边缘特征.线性特 ...
 - bat执行bat文件
			
目的:在服务器桌面创建一个bat文件执行tomcat下的startup.bat文件,这样就不用每次都去文件夹下找startup.bat文件 桌面bat文件内容: @echo off start D:\ ...
 - yii AR 模式操作
			
Bat::find() ; //返回查询实例 Bat::find()->one() //返回一条数据 Bat::find()->all(); //返回所有数据 Bat::find()-&g ...
 - pl/sql sql窗口允许输出和允许变量替换
			
pl/sql sql窗口允许输出和允许变量替换 允许输出:类似在命令窗口中输入的 setserveroutput on; 允许变量替换:如果点击了这个,类似于执行 set define off命令 在 ...