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 项目需求 最近开发的项 ...
随机推荐
- 【原创】打印GC log
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:c:/gc.log
- PCL:PCL与MFC 冲突总结
(1):max,min问题 MFC程序过程中使用STL一些类编译出错,放到Console Application里一切正常.比如: void CMyDialog::OnBnClickedButton1 ...
- 01--Qt扫盲篇
Qt扫盲篇 1.What is Qt 一个跨平台应用程序和UI开发框架,主要偏向于UI框架方面,由诺基亚公司开发维护. 使用 Qt 只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操 ...
- 【Vue+Node】解决axois请求数据跨域问题
项目基于Vue前端+Node后台,启动两个服务,请求数据时,端口不一致造成跨域报错: (No 'Access-Control-Allow-Origin' header is present on th ...
- 网页小技巧-360doc个人图书馆复制文字
用过这个网站的人知道,当你像平时一样复制网页的地址时,这个网站会弹出如下的提示框: 这时候如果你没有账号,又不想注册.真的是一种很崩溃的感觉,但是除了注册登录外,就没有其他的办法了吗? 熟悉网页调试的 ...
- MyBatis 基础入门
MyBatis 是一个半自动化的持久层的框架,能让开发者专注SQL本身 JDBC 连接数据库的硬编码问题,通过config,mapper配置文件解决 Mybatis开发需要关注的文件 l POJO类( ...
- vc++如何创建程序-构造和继承
#include<iostream.h>//定义一个动物类class Animal{public: void eat();//添加方法 { cout<<"animal ...
- WTM
WTM的由来 WalkingTec.Mvvm框架(简称WTM)最早开发与2013年,基于Asp.net MVC3 和 最早的Entity Framework, 当初主要是为了解决公司内部开发效率低,代 ...
- 序列模型(2)-----循环神经网络RNN
一.RNN的作用和粗略介绍: RNN可解决的问题: 训练样本输入是连续的序列,且序列的长短不一,比如基于时间的序列:一段段连续的语音,一段段连续的手写文字.这些序列比较长,且长度不一,比较难直接的拆分 ...
- MySQL 获取无限级某级的全路径
传递参数:文件夹ID DROP FUNCTION IF EXISTS RecursionFolderFullPath; CREATE FUNCTION RecursionFolderFullPath( ...