我正在尝试创建一个带有一些分组标题的表格。 当我有 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/