前言

js 按照字母进行分组的一个实例。

正文

var list = [
{
'name' : '张三',
'py' : 'zhnagsan'
},
{
'name' : '李四',
'py' : 'lisi'
},
{
'name' : '王五',
'py' : 'wangwu'
},
{
'name' : '赵六',
'py' : 'zhaoliu'
},
]; var resault = data_letter_sort(list, 'py'); console.log(resault); /**
* 数据 按照 拼音首字母 排序 并分组
*
* @param {Json} data ; 需要 排序的 数据
* @param {String} field ;必须;排序所依据的 字段 名
*
* @return {Json} ; 例如:{A:[{},{}],B:[{},{}],C:[{}],#:[]}
*/
function data_letter_sort (data, field) {
var letter_reg = /^[A-Z]$/;
var list = new Array();
for (var i = 0; i < data.length; i++) {
// 添加 # 分组,用来 存放 首字母不能 转为 大写英文的 数据
list['#'] = new Array();
// 首字母 转 大写英文
letter = (data[i][field]).substr(0, 1).toUpperCase();
// 是否 大写 英文 字母
if (!letter_reg.test(letter)) {
letter = '#';
}
// 创建 字母 分组
if (!(letter in list)) {
list[letter] = new Array();
}
// 字母 分组 添加 数据
list[letter].push(data[i]);
}
// 转换 格式 进行 排序;
var resault = new Array();
for (var key in list) {
resault.push({
letter: key,
list: list[key]
});
}
resault.sort(function (x, y) {
return x.letter.charCodeAt(0) - y.letter.charCodeAt(0);
});
// # 号分组 放最后
var last_arr = resault[0];
resault.splice(0, 1);
resault.push(last_arr); // 转换 数据 格式
var json_sort = {}
for (var i = 0; i < resault.length; i++) {
json_sort[resault[i].letter] = resault[i].list;
} return json_sort;
}

后续

这个js 按照字母进行分组的局限性在于只能分英文的,中文的是用编码来进行划分,后续补齐。

js 按照字母进行分组的更多相关文章

  1. js 处理字母 大小写的 一些函数

    js中实现字母大小写转换主要用到了四个js函数: 1.toLocaleUpperCase2.toUpperCase3.toLocaleLowerCase4.toLowerCase 下面就这四个实现大小 ...

  2. Js~对数组进行分组户数

    在sql里有group by,主要对数据结果集进行分组统计,而对于JS来说,有时我们也需要这种功能,例如一个数据{"dog","cat","dog&q ...

  3. PHP获取汉字首字母并分组排序

    <?php /** * 错误状态码定义 * User: xiucai * Date: 2018/3/11 * Time: 12:23 */ namespace extend; class Wor ...

  4. 小程序开发笔记(八)—Js数组按日期分组显示数据

    数据分组展示有两种方式,一种是后端直接传入分组格式的Json数据,另一种是我们在前端自己转换格式,这里我们在前端处理转换按日期分组的数据格式 1.例如后端返回数据格式为: [{createtime:' ...

  5. 获取汉字首字母并分组排列 PHP

    1.代码class Character{ /** * 数组根据首首字母排序 */ /** * 二维数组根据首字母分组排序 * @param array $data 二维数组 * @param stri ...

  6. js 关于字母和数字之间的转换

    方法:字符转ascii码:用charCodeAt();        ascii码转字符:用fromCharCode(); 例子: 字母转成数字: var str='A'; str.charCodeA ...

  7. js版iphone通讯录分组列表效果

    <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...

  8. js字符串字母大小写转换

    toLocaleUpperCase 方法 返回一个字符串,其中所有的字母字符都被转换为大写,同时适应宿主环境的当前区域设置. stringVar.tolocaleUpperCase( )必选的 str ...

  9. JS首字母进行分类合并加排序

    let array = ['fds', 'ewfg1', 'cvd', 'ew', 'qer', 'jjh', 'rth', 'asd', 'vsd', 'tteh', 'fxv']; let map ...

  10. 【转】JS字符(字母)与ASCII码转换方法

    var strVariable; for(var i=0;i<25;i++) { console.log(String.fromCharCode((65+i))); } strVariable. ...

随机推荐

  1. Redis稳定性之战:AOF日志支撑数据持久化

    ★ Redis24篇集合 1 介绍 AOF(Append Only File)持久化:以独立日志的方式存储了 Redis 服务器的顺序指令序列,并只记录对内存进行修改的指令. 当Redis服务发生雪崩 ...

  2. 表单验证 validate 两种 一种是callback配合外部变量,当同步用。第2中是 then async await 这种 真正$api也适用

    validateFormRealProcessLeft () { let ret = false this.$refs.xxx.validate((valid) => { if (valid) ...

  3. 2.String类能被继承吗

    2.String类能被继承吗 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的. 拓展 String的底层是一个用private和final修饰的char数组.fina ...

  4. manjaro/archLinux出现什么的签名未知信任的时候

    sudo pacman -S archlinuxcn-keyring 在进行该做的就可以了 出现这种状况的原因是没有规范的更新系统!

  5. IntentGC-A Scalable Graph Convolution Framework Fusing Heterogeneous Information for Recommendation-KDD19

    一.摘要 网络嵌入的显著进步导致了最先进的推荐算法.然而,网站上的用户-物品交互(即显式偏好)的稀疏性仍然是预测用户行为的一个很大的挑战. 虽然,已经有研究利用了一些辅助信息(如用户间的社会关系)来解 ...

  6. Android 获取设备的CPU型号和设备型号

    原文: Android 获取设备的CPU型号和设备型号-Stars-One的杂货小窝 之前整的项目的总结信息,可能不太全,凑合着用吧,代码在最下面一节 CPU型号数据 华为: ro.mediatek. ...

  7. java之Timer类使用方法小例子

    直接上代码: package com.iamzken.test; import java.util.Timer; import java.util.TimerTask; public class Te ...

  8. [转载]Linux根据关键词查找文件/函数/结构体命令整理

    本文来自博客园,作者:Jcpeng_std,转载请注明原文链接:https://www.cnblogs.com/JCpeng/p/15077235.html 一.查找文件 使用 Linux 经常会遇到 ...

  9. android使用StringRequest访问网站接收JSON时空指针报错

    報錯詳情: 代碼詳情: 报错原因:他丫变量名与JSON格式中的变量名不同

  10. FBEC大会 | 瑞云科技 CTO 赵志杰:元宇宙时代的基础设施——实时云渲染

    FBEC未来商业生态链接大会于2023年2月24日在深圳福田大中华喜来登酒店盛大召开,本次大会由广东省游戏产业协会.深圳市互联网文化市场协会指导,陀螺科技主办. 大会以"勇毅前行·逐光而上& ...