我不认为这是重复的,因为它处理的是具有多个记录集的对象,虽然它非常相似,我的需求需要更多的循环。无论哪种方式,我似乎无法让它对我有用。我刚刚在这里学习,这对我来说太复杂了。我需要使用像这样的对象的一些例子。我尝试使用一些类似的问题答案,但由于需要额外的循环水平而总是失败。
我当前的代码输出一个简单的未排序列表:
for (i=0; i<data.length; i++)
if (data[i]['name'])
$("#output").append("<p>"+data[i]['entrynum']+data[i]['name']);
我想要的是:
输出报告的列表(最好按顺序desc):
答案 0 :(得分:0)
我整晚都学到了很多东西! 这就是我现在所拥有的:
//convert my multidimensional object into a simple list
var clublist = [];
for (i=0; i<data.length; i++)
if (data[i]['club'])
clublist.push(data[i]['club']);
//counting, converted into object with occurrence & count
var counts = {};
clublist.forEach(function(x) { counts[x] = (counts[x] || 0)+1; });
//converted into an array to be sorted
var clubs = [];
for (var temp in counts)
clubs.push([temp, counts[temp]])
//sorted array, descending
clubs.sort(function(a, b) { return b[1] - a[1] })
//final output to page
for (i=0; i<clubs.length; i++)
$("#output").append("<p>"+clubs[i][1]+" - "+clubs[i][0]);
然而,这似乎是很多步骤......任何关于使这个更紧凑的想法?