当前位置:   article > 正文

mui和html5中使用js实现通讯录、索引页面、搜索功能等的具体操作方法通用于小程序--实测_js 实现通讯录规则排序

js 实现通讯录规则排序

网路上几乎没有一个完整可用的方法,都是零零散散的,哎,自己码代码吧……

一、先获取json数据(api返回数据或者sqllite本地数据库查询得出)

  1. var datau = [{"username":"我","id":1},{"username":"不","id":5},{"username":"懂","id":2},{"username":"爱","id":11},{"username":"啊","id":6},{"username":"按","id":9}];
  2. var pys = pySegSort(datau);
  3. userdatas(datau,pys);

二、建立转换大小写、名称首字母排序的方法并分组

  1. //排序分组
  2. function pySegSort(arr) {
  3. if(!String.prototype.localeCompare){
  4. return null;
  5. }
  6. // var letters = "*abcdefghjklmnopqrstwxyz".split('');
  7. var letters = "*ABCDEFGHJKLMNOPQRSTWXYZ".split('');
  8. var zh = "阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀".split('');
  9. var segs = [];
  10. var curr;
  11. letters.forEach(function(item,i){
  12. curr = {letter: item, data:[],datas:[]};
  13. arr.forEach(function(item2){
  14. if((!zh[i-1] || zh[i-1].localeCompare(item2.username) <= 0) && item2.username.localeCompare(zh[i]) == -1) {
  15. curr.data.push(item2.username);
  16. curr.datas.push(item2);
  17. }
  18. });
  19. if(curr.data.length) {
  20. segs.push(curr);
  21. curr.data.sort(function(a,b){
  22. return a.localeCompare(b);
  23. });
  24. }
  25. });
  26. return segs;
  27. }

三、使用多维循环实现页面渲染

  1. function userdatas(data,pys){
  2. var table = document.body.querySelector('.mui-table-view');
  3. var htmla=""; //一个字母创建一个 ,即可
  4. var b=0;
  5. for (var i = 0; i < pys.length; i++) {
  6. htmla += '<li data-group='+pys[i].letter+' class="mui-table-view-divider mui-indexed-list-group">'+pys[i].letter+'</li>';
  7. pys[i].datas.forEach( function(item){
  8. var s=pinyin.getCamelChars(data[i].username)+"";//此方法为 将返回的姓名 转为 大写首字母缩写 ,百度即可 如 李二 转为LR
  9. var shouzimu=s.substr(0, 1); //此方法获取 首字母 。
  10. htmla += '<li data-value='+s+ 'data-tags='+s+' class="mui-table-view-cell mui-indexed-list-item">'+item.username+'</li>';
  11. // console.log(item.id + '---' + item.username)
  12. })
  13. }
  14. table.innerHTML = htmla;//要按照 字母顺序添加 对应字母的 字符串即可
  15. }

四、页面需要首字转换的js文件,在资源里,直接去下载放进mui项目中就可以直接运行了。

五、希望可以帮助到后来人,以免入坑和浪费宝贵的青春……

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/495303
推荐阅读
相关标签
  

闽ICP备14008679号