Javascript 动态分组

标签 javascript dynamic mootools grouping

我正在尝试创建一个带有一些分组标题的表格。 当我有 1 个组时一切都很好,但是我如何创建动态组?

这是我目前所拥有的(对于一组):

var groupby = '';
arrdata.each(function(element){
    if (groupby != element.groupby) {
        groupby = element.groupby;
        tbody.push(groupby)
    }
    tbody.push(element)
})

如何让它创建动态组?

最佳答案

您可以先将它们分组到一个对象中:

Array.prototype.groupBy = function(keyName) {
  var res = {};
  this.forEach(function(x) {
    var k = x[keyName];
    var v = res[k];
    if (!v) v = res[k] = [];
    v.push(x);
  });
  return res;
};

然后for .. in through the object:

var employees = [{first: ..., last: ..., job: ...}, ...];
var byJob = employees.groupBy('job');
for (var job in byJob) {
  document.write('<h3>Job: '+job+'</h3>');
  byJob[job].forEach(function(e) {
    document.write('<p>'+e.last+', '+e.first+'</p>');
  });
}

关于Javascript 动态分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1267158/

相关文章:

javascript - 使用 Mootools get Elements('[selected] 查找是否选择了任何选项

JavaScript 不工作,说类未定义

javascript - 可以更改我的工具提示插件以接受 "click"选项而不会太麻烦吗?

javascript - 合并和定位两个媒体流

php - 用于 PHP 中动态立即付款按钮的 Paypal API

c++ - 通过传递外部指针或通过内部调用 new 构造的类,我可以在销毁时天真地删除这个指针吗?

css - 如何让动态大小的灯箱正确溢出/滚动?

javascript - 在 <a href> 上运行 javascript 函数

javascript - 阻止电话访问子域M

javascript - mootools 和另一个(非框架)脚本之间的冲突