前台js页面排序,按照中文名字排序

图片说明

手机页面,用的mui. 现在页面中已经显示数据,需要进行一个排序,点击品牌的时候,需要按照品牌中文名称排序,请问大大神怎么写代码啊

9个回答

首先将汉字转拼间,再array.sort排序即可。
http://dl.jufuns.cn/js/ss.js 为汉字拼音映射表。

当然,你也可以打开http://blog.csdn.net/jiangfuqiang/article/details/13003567这个地址,浏览器控制台一打开,执行以下js

var py2hanzi={},py2unicode={},hanzi2py={},unicode2py={};
for( s=$('div.dp-highlighter ol li '),i=0,l=s.length;i<l;i++){p = ($(s[i]).text().replace(/\u00a0+/g,'|')).split('|'),k =String(p[0].replace(/\d+$/,'')).toLowerCase(),!py2hanzi[k] &&(py2hanzi[k]=[],py2unicode[k]=[]);p[1].split('').forEach(e => (!py2hanzi[k].includes(e)&&(py2hanzi[k].push(e=e),py2unicode[k].push(e.charCodeAt())),!hanzi2py[e] && (hanzi2py[e]=k),!unicode2py[e] && (unicode2py[e.charCodeAt()]=k)));}
window.JSON && console.log(JSON.stringify(py2hanzi));
window.JSON && console.log(JSON.stringify(py2unicode));
window.JSON && console.log(JSON.stringify(hanzi2py));
window.JSON && console.log(JSON.stringify(unicode2py));

数据是从后台数据库动态获取的吗?是的话,就在点击品牌的时候,调用你的查询数据接口,然后把 品牌 desc或者品牌 asc传到后台,然后调用你的查询语句,再将数据返回到前台,重新填充表格。

var data = ['魅族', '小米', '华为', '苹果' , '乐视'];
console.log(data.sort());

上面是最简单的排序,输出结果如下所示:

[ '乐视', '华为', '小米', '苹果', '魅族' ]

当然,我们可以获取第一个首字的编码,如下面这种方式:

var data = ['魅族', '小米', '华为', '苹果' , '乐视'];
var itemMap = {};
for (var item of data) {
  itemMap[item.charCodeAt(0)] = item;
}

console.log(itemMap);

输出结果为:

{ '20048': '乐视',
  '21326': '华为',
  '23567': '小米',
  '33529': '苹果',
  '39749': '魅族' }

这样我们就可以更具编码大小进行排序了,如果要获取整个词语的大小,我们只需将循环内部替换为如下代码:

for (var item of data) {
  var first = Number.isNaN(item.charCodeAt(0)) ? 0 : item.charCodeAt(0);
  var second = Number.isNaN(item.charCodeAt(1)) ? 0 : item.charCodeAt(1);
  itemMap[first + second] = item;
}

进行重新排序即可

avenccssddnn
ipple1986 回复qq_37823305: 它只是简单地按unicode编码的顺序去排,根据达不到字母排序功能。看看我的回复吧,亲
接近 2 年之前 回复
suwu150
suwu150 你可以按照下面这个方法取到首字母拼音,然后就可以使用sort进行排序了http://www.jb51.net/article/128190.htm
接近 2 年之前 回复
suwu150
suwu150 可以是可以,但是需要引入插件进行操作
接近 2 年之前 回复
qq_37823305
qq_37823305 可以获取首字的字幕拼音字幕进行排序么?
接近 2 年之前 回复

如下所示,可以进行正确排序,其中引入了一个库的地址:http://xiazai.jb51.net/201711/yuanma/ChinesePY(jb51.net).rar

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="utf-8" />
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <!--引入外部库-->
    <script type="text/javascript" src="ChinesePY.js"></script>
    <script>
      var data = ['魅族', '小米', '华为', '苹果' , '乐视'];
      var itemMap = {};
      for (var item of data) {
        // 获取首字母
        var result = Pinyin.GetJP(item);
        itemMap[result] = item;
      }
      console.log(itemMap);

    </script>
</head>
<body style="font-size:12px">
<form>
    <div>

    </div>
</form>
</body>
</html>

最后结果如下所示:

hw:"华为"
ls:"乐视"
mz:"魅族"
pg:"苹果"
xm:"小米"

如果你想要对一个对象的属性进行排序,你可以通过Object.keys获取键值,进行排序,如果不会实现,就可以查看这个地址:
https://www.npmjs.com/package/sort-object-attribute,查看其实现原理

Pinyin.GetJP(this.value);
Pinyin.GetQP(this.value);
Pinyin.GetHP(this.value);

在库中有三个接口,.GetJP首字母,GetQP全拼,GetHP混拼

你可以把全拼维护在数据库里面,然后点击的时候后台排序。

Comparator comparator = Collator.getInstance(java.util.Locale.CHINA);
String[] arrStrings = {"c","b","a"};
Arrays.sort(arrStrings, comparator);
for (int i = 0; i < arrStrings.length; i++)
System.out.println (arrStrings[i]);
}

给你两个思路:
第1,如果你那一列中文的品牌是固定的,你就可以像楼上说的,写死一个idx:品牌名的数组,直接用idx去排序即可。
第2,如果你想更支持更多的中文排序的话,http://blog.csdn.net/mergerly/article/details/53260164 访问这个,拿到他的转拼音算法,之后自定义一个

String.prototype.compare=function(otherStr){
      thisStr = this.toString();
            ...作比较排序

}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
中文名字如何按照字母拼音排序
在做一个电话本,名字是cstring类型的。不知道汉字之间,以及汉字和英文之间按照汉语拼音之间如何按照拼音顺序排序。
二维数组按照名字进行排序
二维数组如何按照名字排序 数组sort排序深入 通过利用Array原型中的sort方法,我们可以实现对数组进行排序,但是有兼容问题,在此我们不考虑兼容到ie6,7,以下内容只作为工作中的参考,如需获得兼容写法,可以@我: 需求1 使用sort方法对下面数组按照age进行排序 var ary = [ {name: &quot;深圳&quot;,age: 40 }, {name: &quot;北京&quot;,...
根据中文名字排序
/**  *  * @author lq  * @date 2015-11-20 下午5:50:42  */ public class ComparatorWxUser implements Comparator {     Collator cmp = Collator.getInstance(java.util.Locale.CHINA);     @Override  
名字排序,大小排序
//m默认排序 function defaultSort(){             var a="博斗,啊逼,吃人,世界,中国,超自然,超哥,超自恋,拜拜"             a=a.split(",");             a.sort();             console.log(a);         } //按照拼音排序         functi
java 按照中文首字母排序
package Util; import java.text.Collator; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Locale; import java.u
实体类按照中文首字母排序
场景: 返回给前端的实体类需要按照某一字段进行首字母排序 一:实体类实现接口Comparable public class Devices implements Comparable 二:在实现的方法中设置需要排序的字段 @Override public int compareTo(Devices o) { // 只能对一个字段做比较,如果做整个对象的比较就实现不了按指定字段排序了。 return...
怎么按照中文笔划排序
工具-〉选项-〉常规 这里已经改成中文笔划了,但是没用,还是按照拼音的顺序排序
按照文件夹名字进行升序排序
/**   * 对文件进行升序排序   * @param files 排序前的文件List   * @param finalFiles 排序后的文件List   */   public static ListsortFilesList(Listfiles,ListfinalFiles){   Map map=new TreeMap(); for(File ff:files){ St
C# 读取文件夹下文件,按照名字排序
正常的读取文件时非常简单的,按照文件名排序就要参照Windows的排序, 往往添加排序处理后与windows的排序规则不统一,所以要学会调用windows 的排序dll,可以节省很多时间。 //APP_DATA\Advertisement DirectoryInfo folder = new DirectoryInfo("./APP_DATA/Advertisement"); if (
如何让数据库排序的时候按照中文的拼音来排序?
rn要排序的字段是中文的。rn如何按照拼音的次序来排序?rn而不要按照中文的ascii码来排序。
sql中文字段按照汉语拼音首字母排序
select * from table order by convert(column using gbk) asc 注意:会导致全表扫描 建立冗余字段,插入数据时字段为convert(column using gbk),在此字段上建立索引
java中按照中文拼音排序
String[] plantList=new String[5]; Comparator cmp = Collator.getInstance(java.util.Locale.CHINA); Arrays.sort(plantList,cmp);
flex_DataGridColumn中文按照首字母拼音排序
整个页面全粘出来了! 费时费力啊,整了好长时间,不知道还有没有别的好的方法。。。 =n; } public function convertChar(chineseChar:String):String { if(chineseChar!=null){ var bytes:ByteArray = n...
中文姓名按照拼音排序-python
写在前面 在做文档排版的时候经常会遇到姓名的排序问题,当人名很多的时候,我们是不可能人工的一个一个比较排序,那么有什么办法快速解决这一问题吗?答案可定是有,今天为大家介绍一种。 程序 from xpinyin import Pinyin def my_function(lis): #输入一个名字的列表 pin=Pinyin() result=[] ...
js 按照中文拼音来排序
let array = ['武汉', '北京', '上海', '天津']; array.sort( function compareFunction(param1, param2) { //console.log(&quot;param1&quot;,param2) return ...
mysql 按照中文拼音首字母排序
ORDER BY convert(name using gbk) ASC
五、按照中文首字母进行排序
order by convert(nickName using gbk) collate gbk_chinese_ci   按照“nickName”字段的中文首字母排序(降序)
hibernate中按照中文拼音排序
    /** * MySQLExtendDialect.java of new_dlog_cn * 作者: Winter Lau * 时间: 2009-4-13 * 项目主页: &amp;lt;a href=&quot;http://www.dlog4j.com/&quot;&amp;gt;http://www.dlog4j.com&amp;lt;/a&amp;gt; */ package com.dlog4j.test...
combo的sort怎么按照中文排序规则排序?
combo的sort怎么按照中文排序规则排序?combo怎么排序星期几这样的中文字符串?排序规则可以自定义么?
mysql中文排序(按照中文拼音顺序排序)
Mysql按照中文拼音排序
list之按照中文拼音首字母排序
     在实际生活中,我们经常会用到根据中文拼音的首字母进行排序。从而方便进行检索汉字,例如一个公司的人员,按照姓名的拼音的首字母进行排序,这种场景很多。    我自己写了一个简单的实现这种排序的代码,仅供大家参考。   public class TestCompare { private static Comparator comparator=Collator.getInstance(...
按照字段的排序问题
我有两个表,其中一个房型表 roomstyle,字段 id,structure(房型);另外一个价格表 price,字段roomid,price(房价)rnrn我想把房型读出来,同时按照价格升序排列!rnrnrn
按照优先级排序List
问题场景应需求要对前端展现的数据排序,后端传过来的是个list,要求按照类A的某个字段排序,A类的M字段有几个取值,比如“0”“1”“2”“3”“9”,目标是按照 0 > 1 > 2 > 9 > 3的顺序排序list。解决方案用java自带的工具类Collections排序list,自定义优先级,按照要求输出CODEpackage list;import java.util.*;/** * Cre
汉字按照拼音排序
1.引入pinyin4j 包 com.belerweb pinyin4j 2. 继承Comparator  public class PinyinCompare implements Comparator{ private String ToPinYinString(AreaListVo contacts){           String str=c
按照条件排序
现在有一个这样的语句rnrn[color=#FF0000]"select UserID,Name from where UserID in (2,6,3,1,5,4)"[/color]rnrn现在输出的结果是按照[color=#FF0000]UserID[/color]的[color=#0000FF]asc[/color]排的rnrn怎么能让排序按照[color=#FF0000](2,6,3,1,5,4)[/color]这个顺序排列呀
如何按照拼音排序???
假如我做一个通讯录,怎么样把通讯录里面的人名按照拼音排序???rn
TreeMap按照key排序
[code=&quot;java&quot;]package test.tool.gui.common; import java.util.Comparator; import java.util.TreeMap; public class Test { public static void main(String[] args) { //不指定排序器 TreeMap tr...
List按照date排序
今天开发需要对一个list进行排序,要求对里面的date类型的属性进行排序,不多说,直接上代码。 Leavecalendar这个bean类里面有属性date; private Date Date;有get/set方法; public Date getDate() { return Date; } public void setDate(Date lc
数据库 按照昵称排序
&lt;?php /** * Created by PhpStorm. * User: Administrator * Date: 2019/3/20 * Time: 15:34 */ namespace App\CustomSystemConfig; class MailList { /** * 将数组按字母A-Z排序 * @return [typ...
按照得分排序
公司 分数 排名rn6201 33 rn6202 23 rn6203 43rn6204 63rn6205 52 rnrn按照得分计算出各个公司的排名,然后,按照原来的顺序,在后面标注各个公司的排名rn求教,谢谢!
字符串按照字典序排序
用sort()函数对字符串进行字典序排序   定义结构体存储字符串   struct node { char st[1000]; }a[100000];           定义排序规则 字典序   bool cmp(node s1,node s2) { return strcmp(s1.st,s2.st)&amp;lt;0; } 降序     b...
ls命令按照文件大小排序
ls可以按照文件大小进行输出排序,这是一个很实用的参数。 [code=&quot;java&quot;] man ls -S sort by file size [/code] 用法: [code=&quot;java&quot;] ls -Sl [/code] 这是按照由大到小排序,如果想要反过来,从小到大,那么用: [code=&quot;java&quot;] ls -Slr [/cod...
JSONArray按照字段排序
JSONArray result = new JSONArray(); for (String sId : split) { JSONObject json = new JSONObject(); Object findTotalPriceBySId = payOrderRepository.findTotalPriceOneWeek(gId, pId, lId,sId,startTi...
如果按照百分比排序?
RT,如果按照百分比排序,例如字段如下rnOnline_user all_user rn 100 200 rn 111 333 rn 222 555rn 4 50rn我们可以得到 online_user all_user online_user/all_user 三个字段,我现在想让online_user/all_user字段显示rn50.0%rn33.3%rn40.0%rn8%rn我如何能让表格按照 online_user/all_user 字段降序排序,即得到rn100 200 50%rn222 555 40%rn111 333 33%rn4 50 8%rnrn我现在知道如果不对第三个字段进行百分比处理是能得到这个顺序的,但是进行%处理之后就得到了8%排第一位了。。。
按照文件名排序?
一个文件夹下面有若干个文件:rn1.txt、2.txt、3.txt、4.txt、5.txt、6.txt...10.txt、11.txt、12.txt、13.txt...rn我想在程序中依次按照上面的顺序读取,但是读取后的顺序是:rn1.txt、10.txt、11.txt、12.txt....2.txt、20.txt、21.txt、22.txt....3.txt、30.txt、31.txt、32.txt...rn请问下大家,怎样实现1.txt、2.txt、3.txt、4.txt、5.txt、6.txt...10.txt、11.txt、12.txt、13.txt...这种排序啊???rn
数组按照时间排序
有如下数组 我想按照时间降序 获取最新的六条数据 代码如下:[code=php]rnrnrnArrayrn(rn [0] => Arrayrn (rn [id] => 81rn [title] => 撒大声地rn [uid] => 166rn [created_time] => 2015-11-25 17:15:27rn [1] => 1rn )rnrn [1] => Arrayrn (rn [id] => 80rn [title] => 唐门提问问题标题一rn [uid] => 166rn [created_time] => 2015-11-20 14:49:57rn [1] => 1rn )rn [2] => Arrayrn (rn [id] => 22rn [title] => testrn [uid] => 126rn [created_time] => 2015-12-10 14:49:57rn [2] => 2rn )rnrn rnrn [3] => Arrayrn (rn [id] => 78rn [title] => 123rn [uid] => 122rn [created_time] => 2015-11-16 15:52:19rn [1] => 1rn )rnrn [4] => Arrayrn (rn [id] => 77rn [title] => dsfasdrn [uid] => 156rn [created_time] => 2015-11-09 11:04:24rn [1] => 1rn )rnrn [5] => Arrayrn (rn [id] => 76rn [title] => CErn [uid] => 156rn [created_time] => 2015-11-04 16:44:34rn [1] => 1rn )rnrnrn [6] => Arrayrn (rn [id] => 79rn [title] => 测试rn [uid] => 156rn [created_time] => 2015-11-18 14:28:44rn [1] => 1rn )rnrn [7] => Arrayrn (rn [id] => 21rn [title] => 没删除—1rn [uid] => 126rn [created_time] => 2015-07-02 13:50:44rn [2] => 2rn )rnrn [8] => Arrayrn (rn [id] => 20rn [title] => 没删除—1rn [uid] => 126rn [created_time] => 2015-07-02 13:50:44rn [2] => 2rn )rnrn [9] => Arrayrn (rn [id] => 19rn [title] => 没删除—1rn [uid] => 126rn [created_time] => 2015-07-02 13:50:44rn [2] => 2rn )rnrn [10] => Arrayrn (rn [id] => 18rn [title] => 没删除—1rn [uid] => 126rn [created_time] => 2015-07-02 13:50:44rn [2] => 2rn )rnrn [11] => Arrayrn (rn [id] => 17rn [title] => 1人撒Yui日体育规范地方发货方撒地方rn [uid] => 3rn [created_time] => 2015-07-02 13:50:44rn [2] => 2rn )rnrn)rn[/code]
按照数字排序
使用ComponentOne Studio for .NET 公司的C1FlexGrid绑定DataView ,怎样对字符型的数字按照数字进行排序而不是按照字符排序。例如对1,4,5,11,12,2,3 进行排序的结果是 1,2,3,4,5,11,12 而不是1,11,12,2,3,4,5
sqlserver按照笔画排序
 select top 20902 code=identity(int,19968,1) into #t from syscolumns a,syscolumnsb   select code,nchar(code) as CNWord from #t order by nchar(code) collateChinese_PRC_Stroke_CS_A
IP排序,按照自然数
支持IP按照自然数排序对型如:XXX.XXX.XXX.XXX#XXX, XXX.XXX.XXX.XXXAXXX,XXX.XXX.XXX.XXXBXXX的IP进行排序。 效果如下: 原始: 192.168.254.1#09=attack 192.17.254.100#09=attack 192.18.254.100#09=attack 192.168.254.100A19=attack 192.168.254.10#09=attack 192.168.254.100B09=attack 192.168.254.100A09=attack 192.168.254.100A29=attack 192.168.254.100B29=attack 192.168.254.100#19=attack 192.10.254.100#09=attack 192.168.254.100B99=attack 192.168.254.10#10=month 192.168.254.11#11=bread 19.168.254.100#09=attack 排序后: key= 19.168.254.100#09 and value= attack key= 192.10.254.100#09 and value= attack key= 192.17.254.100#09 and value= attack key= 192.18.254.100#09 and value= attack key= 192.168.254.1#09 and value= attack key= 192.168.254.10#09 and value= attack key= 192.168.254.10#10 and value= month key= 192.168.254.11#11 and value= bread key= 192.168.254.100#19 and value= attack key= 192.168.254.100A09 and value= attack key= 192.168.254.100A19 and value= attack key= 192.168.254.100A29 and value= attack key= 192.168.254.100B09 and value= attack key= 192.168.254.100B29 and value= attack key= 192.168.254.100B99 and value= attack
TreeMap 怎么按照排序
TreeMap 这个是我的TreeMaprnMyClass里头有个int score 的类属性rnMyClassrn int score;rn string word;rnrnrn我想按照MyClass的score 把这个TreeMap排序 请问怎么做呢
相关热词 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天 c#func链接匿名方法 c#怎么创建文件夹 c#从键盘接收空格 c#da/ad c#部门请假管理系统 c#服务器socket c# 默认的访问修饰符