您的位置 首页 > 数码极客

qq分组如何用js方式写

网上找不到js分组的原生态方法,今天有空自己写了个方法,感觉还可以,拿出来分享,望各位读者多多指教。

1 $ = function (itemlist, gby) { 2 3 var setGroupObj = function (noteObj,rule, gby, gIndex, maxIndex) 4 { 5 var gname = rule[gby[gIndex]]; 6 if (gIndex == maxIndex) { 7 if (noteObj[gname] == undefined) 8 noteObj[gname] = ; 9 if (noteObj[gname].indexOf(rule) < 0) { 10 noteObj[gname].push(rule); 11 } 12 } 13 else { 14 if (noteObj[gname] == undefined) { 15 noteObj[gname] = {}; 16 } 17 setGroupObj(noteObj[gname], rule, gby, gIndex + 1, maxIndex); 18 } 19 } 20 21 var noteObj = {}; 22 for (var i = 0; i < i; i++) { 23 setGroupObj(noteObj, itemlist[i], gby, 0, gby.length - 1); 24 } 25 26 27 var getSubInfo = function (note, p, gIndex, maxIndex) { 28 var newobj = {} 29 newobj.key = p; 30 newobj.value = ; 31 if (gIndex == maxIndex) { 32 for (var k in note) { 33 newobj.value.push(note[k]); 34 } 35 } 36 else { 37 for (var k in note[p]) { 38 newobj.value.push(getSubInfo(note[p][k], k, gIndex + 1, maxIndex)); 39 } 40 } 41 return newobj; 42 } 43 var myobj = ; 44 for (var p in noteObj) { 45 myobj.push(getSubInfo(noteObj, p, 0, gby.length - 1)); 46 } 47 return myobj; 48 } 49 $ = $(allrules, ['groupbycolumn1', 'groupbycolumn2']);

其中allrules是要分组的数组,groupbycolumn1,groupbycolumn2是要进行分组的字段名,可以支持多个。

返回的结果是一个分组的对象:

var result={key:'',value:[

{key:'',value:},{key:'',value:}

]}

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“qq分组如何用js方式写”边界阅读